C++初识

学习一门新的程序设计语言最好的方法就是编写程序

1.1 编写一个简单的C++程序

每个C++程序都必须包含一个main函数,操作系统通过调用main函数来运行程序。

函数定义的四部分:

  • 返回类型:int, float, string, char...

  • 函数名:符合标识符命名规则

  • 参数列表:包含在函数名之后的小括号中,多参数时各个参数用逗号隔开

  • 函数体:以花括号 {} 包含的数据和操作。结尾出必须有return返回语句,与返回类型相呼应。如果没有显式返回则缺省返回0

示例:

int main(){
   return 0;
}

1.1.1 编译、运行程序

什么是编译:由编译器将编写好的程序转化为操作系统可以识别的机器码。

编译器的作用:

  • 检查程序形式上的错误;比如:关键字错误,符号不匹配等

  • 将源代码转换为操作系统可识别并执行的机器码

如何编译源代码:

  • 用IDE编写的程序,可以直接运行。IDE中集成的编译器会自动编译程序

  • 可以在终端手动编译。如:g++ hello_world.cpp

1.2 初识输入输出

C++中没有专门的输入输出语句,它使用一个标准库来(iostream)提供IO机制。包含istream和ostream。在C++中需要使用库设施就必须加载相关的头文件,这就像在Python程序中使用矩阵运算就需要import numpy一样。

流:字符序列,表示随着时间的推移,字符是顺序读出或读入的。

标准输入输出对象:

  • cin:标准输入;类似于Python中的input函数

  • cout:标准输出;类似于Python中的print函数

  • ceer:标准错误输出;用来输出警告和错误信息

  • clog:标准日志输出;用来输出程序运行时的一般性信息

使用IO操作的完整流程:

  • 加载iostream标准库

  • 使用std命名空间:这是由于标准库中cout, cin等都是定义在std命名空间中的

  • 使用IO操作

示例:

#include <iostream>
using namespace std;
int main()
{
   cout << "请输入两个数字" << endl;
   int a,b;
   cin >> a >> b;
   cout << "their sum is:" << a + b << endl;
   return 0;
}

1.3 注释简介

注释的作用:对代码进行解释说明,提高代码可读性。

C++中注释的种类:

  • 单行注释:使用双斜杠 // 来表示。

  • 多行注释:使用 /* */来包含多行注释内容。

note: C++编译器会识别并忽略注释内容。

示例:

// 这是一条单行注释
/*
* 这是第一条注释
* 这是第二条注释
*/

节练习:

image-20201202165601837

由于1,2很容易判断是正确的,这里只演示第三四条语句。

#include <iostream>

int main(){
   cout << /* "/*" */ ;
   return 0;
}

image-20201202170041603

可以发现第三条语句是错误的,这是由于注释符无法匹配导致输出错误。

# include <iostream>
using namespace std;

int main()
{
   cout << /* "*/" /* "/*" */;
   return 0;
}

image-20201202170740572

第四条语句正确输出,由于前后两队多行注释各正确注释了引号,只对中间的字符进行输出。

1.4 控制流

控制流的作用:用来执行更复杂的程序执行顺序。通常使用的方法是使用条件对执行顺序进行控制。

1.4.1 while语句

while语句的作用:用来反复执行某段代码,直到满足指定条件为假时。也可以这么理解,当满足条件的这段过程中,一直执行while代码块的程序。

示例:

#include <iostream>
using namespace std;
// 编写一个从0到10的求和公式
int main()
{ /*
*定义变量
*sum:和
*num:数字,从0到10
*/
   int sum, num;
   sum = 0;
   num = 0;
   // 设置条件:当循环计算到10时(包含10),循环操作结束
   while (num <= 10){
       sum += num;
       num +=1;
  }
   cout << "sum is:" << sum << endl;
   return 0;
}

运行结果为:

image-20201202172650633

1.4.2 for 语句

for语句的作用:与while作用相似,形式上更加简化。

for循环的结构:

  • 循环头:for关键字后小括号里的内容

    • 初始化语句

    • 循环条件

    • 表达式

  • 循环体:循环头下方代码块的内容,具体的操作

示例:

#include <iostream>
using namespace std;
// 使用for循环来实现上个例子
int main(){
   int sum = 0;
   for (int num = 1; num <=10; ++num) // 定义循环头,小括号里分别是num定义和控制循环的条件,表达式++num == num = num + 1
  sum += num; // 定义循环体
   cout << " sum is: " << sum << endl;
   return 0;
}

image-20201202183355749

1.4.3 读取不定量的输入数据

思路:相当于将输入和读取做循环操作

示例:

#include <iostream>
using namespace std;
// 实现将输入的所有数字进行求和
int main(){
   int sum = 0, value = 0;
   while (cin >> value){
       sum += value;
  }
   cout << " sum is : " << sum << endl;
   return 0;
}

输入1-10结果为:

image-20201202190745831

需要注意的是这里的程序截止条件是输入文件结束符(Ctrl + Z)或不符合输入条件时。这是停止的方法时输入一个字母,不符合输入为Int类型的定义。

1.4.4 if 语句

使用if else的逻辑结构来控制程序的执行。与其他语言的语法一致。

示例:

#include <iostream>
using namespace std;
// 统计输入数字序列中每个数字出现的次数
int main()
{ // currVal是我们正在统计的数,val是新读入的值
   int currVal = 0, val = 0;
   // 这里进行数据输入,并判断是否有有效输入。这是if判断的原因
   if (cin >> currVal){
       int cnt = 1; // cnt是计数变量
       while (cin >> val){ // 按顺序读取下一个数
           if (val == currVal) // 如果值相同
               ++cnt; // 计数器加1
           else {
               cout << currVal << "occurs"
                    << cnt << "times" << endl;
               currVal = val; // 记住新值
               cnt = 1; // 重置计数器
          }
      }
       cout << currVal << "occurs" << cnt << "times" << endl;
  }
   return 0;
}

输入数字序列为41,41,42,45,50时的结果是:

image-20201202194049322

注意:示例中是按顺序判断的,如果相邻两数不同则停止计数,出现次数为1。对于打乱顺序的序列无法正确计数。

关于C++程序的缩进和格式:C++程序中通常使用花括号来放置代码块,它表明了代码与函数之间的包含关系,不过我们发现while, for, if等语句可以使用花括号也可以使用缩进来表示这层关系。在C++中这都是允许的。尽量保持风格的统一与代码的优美,这会提高代码质量和可读性。

1.5 类简介

1.5.1 什么是类

它定义了一个类型,以及与其相关的一组操作。每个类都定义了一个新的类型,类名就是类型名。

:一个模板,用于指定对象的形式,包含了数据表示法和处理数据的方法。如:湖北双龙铸币模板

对象:类的一个实例,类定义了对象可以使用的所有操作。如:一枚湖北双龙银币

如何定义类:以关键字 class 开头,跟类的名称。类的主体包含在花括号中,结尾的花括号后要跟一个分号或一个声明列表

示例:


class Boy
{ // public确定了类成员的访问属性为公开访问
   public:
  double height; // 身高
  double weight; // 体重
};

如何定义对象:定义对象就像声明基本变量一样。使用类名跟对象名的方式

示例

Boy Tom;

1.5.2 初识成员函数

什么是成员函数:定义在类中的函数

示例:

#include <iostream>
using namespace std;

class Boy
{ // public确定了类成员的访问属性为公开访问
   public:
  int height = 188; // 身高
  int weight = 166; // 体重
   int get_value(void){
       cout << height << " " << weight <<endl;
       return 0;
  }
};
int main(){
   Boy Tom;
   cout << Tom.get_value() << endl;
   return 0;
}

其中get_value就是类Boy的成员函数。

如何访问成员函数:使用类对象来访问,也称调用,需要使用点运算符

Tom.get_value()

返回结果为:

image-20201202211257727

 

原文地址:https://www.cnblogs.com/peiziming/p/14076629.html