C++基础知识
C++融合了3种不同的编程方式:C语言代表的过程性语言、C++在C语言基础上添加的类代表的面向对象语言、C++模块支持的泛型编程。
1.main()函数
C++句法要求main()函数的定义以函数头 int main() 开始,程序中必须包含一个名为main()的函数。main()被启动代码调用。启动代码是由编译器添加到程序中的,是程序和操作系统之间的桥梁。该函数头描述的是main()和操作系统之间的接口。
int main():int表示main()函数的返回值是一个整型数据。空括号表示main()函数不接受任何参数,即不从调用它的函数那里获得任何信息。
该函数头也可以表示为int main(void)。C++中可省略void表示不接受任何信息(C中省略void表示对是否接收参数表示沉默)。
当函数末尾没有返回语句时,编译器认为以 return 0; 结尾。
2.注释
C++注释以双斜杠(//)打头,到行末结尾。注释必须在一行上,不可将一个注释写在多行上。
C-风格注释:C++也可使用/*注释*/的形式注释,该注释以*/结尾,所以可以写在不同行上。
3.iostream文件
#include <iostream> 该编译指令导致预处理器将iostream文件的内容添加到程序中。
iostream中io指的是输入(进入程序的信息)和输出(从程序中发送出去的信息)。
4.头文件名
头文件名 | 约定 | 说明 |
C++旧式 | 以.h结尾 | C++程序中可用 |
C旧式风格 | 以.h结尾 | C、C++可用 |
C++新式风格 | 没有扩展名 | C++可用,使用namespace std |
转换后的C | 加前缀c,没有扩展名 | C++可用,可使用不是C的特性,如namespace std |
5.名称空间
当两个已经封装好的产品里有相同名字的函数时,为避免混淆,因使用using namespace指令指定使用的函数。
三种使用std函数里的cout指令的方法:
(1)using std::cout; //make cout available
(2)using namespace std; //make std all name available
(3)std::cout << "hello,world!"; //make cout available
6.使用cout输出
cout对象属性包括一个插入运算符(<<),它可以将其右侧的信息插入到流中。
cout << "hello,world!"; //将"hello,world!";插入到输出流中
cout << num; //输出num的值
使用cin输入
cin >> carrots; //将键盘输入的信息从cin流向carrots
7.控制符endl
endl也是在头文件iostream中定义,且位于名称空间std中。
作用:在输出时换行。
也可用就是的\n进行换行操作。
\n和endl的一个差别:endl确保程序继续运行前刷新输出(将其立即显示在屏幕上);而\n不能提供这样的保证,这意味着在有的系统中,有时可能在输入信息后才会出现提示。
8.C++源代码的格式化
C++一句语句以;结尾,所以一句语句可以放在一行上也可放在多行上。因此回车键和空格键、制表符作用相同。
在C和C++中不能将回车键、空格键、制表符放在元素(如名称)中间:int ma in() //error
一行代码中不可分割的元素叫做标记(token),通常要用回车键、空格键、制表符将两个标记分开。
C++源代码风格:
- 每条语句占一行。
- 每个函数都有一个开始花括号和一个结束花括号,这两个花括号各占一行。
- 函数中的语句都相对于花括号缩进。
- 与函数名称相关的圆括号周围没有空白。
9.C++语句
声明语句与变量
int carrots; int 被存储的数据类型,carrots 变量名,“;”表示语句结束。这句语句提供两项信息:需要的内存以及该内存单位的名称。carrots被称为变量。
对于声明变量,C++的做法是尽可能在首次使用变量前声明它。
10.类属性
类描述了一种数据类型的全部属性(包括可使用它执行的操作),对象是根据这些描述创建的实体。
11.函数
函数原型之于函数就像变量声明之于变量。函数原型描述函数接口,即它描述的是发送给函数的信息和返回的信息。
sqrt()的函数原型:double sqrt(double); //function prototype 第一个double表示函数返回一个double类型的数据,括号中的double表示函数需要一个double类型的参数。
原型后的分号表明它是一条语句,这使得他是一个原型,而非一个函数头。如果省略分号,编译器将把这行代码解释为一个函数头,并要求接着提供定义该函数的函数体。
函数格式:
type functionname(argumentlist)
{
statements
}
type表示函数的返回值类型,argumentlist表示发送给函数的信息:数据类型和形式参数。
注意:函数定义要放在main()函数后面。函数定义不可嵌套在另一个函数定义里,每一个函数定义相互独立平等。