1.命名空间:也叫名字空间,名字空间域是随着标准C++引入的,相当于一个更加灵活地文件域(全局域),可以用花括号把文件的一部分括起来,并有关键字namespace开头给它起一个名字。名字空间域解决全局命名冲突的问题。
2.C++基本的输入输出流:
cin:标准输入流对象,键盘为其对应的标准设备。
cout:标准输出流对象,显示器为标准设备。
cerr和clog:标准错误输出流,输出设备是显示器。
<<是输出操作符,>>是输入操作符。
3.重载(C++为什么支持重载?):在同一作用域内,一组函数的函数名相同,参数列表不同(个数相同,类型不同),返回值可同可不同。
例如一个函数的声明:void ADD(int x,double y);
在C语言中,经过编译器编译之后在库中的名字为_ADD;
在C++中,经过编译器编译之后在库中的名字为_ADD_int_double;
另一个函数的声明为:void ADD(double x,int y);
在C语言中,经过编译器编译之后在库中的名字为_ADD;
在C++中,经过编译器编译之后在库中的名字为_ADD_double_int;
在链接时,都是找名字链接的,比如以上两个函数,在C语言中两个名字一样就会报错,但是在C++中不一样,不会报错。
4.C++缺省参数:全缺省参数和半缺省参数,全缺省参数是指函数定义时全部参数初始化,半缺省参数是指函数定义时只初始化一部分。
5指针和引用:指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。引用不是定义一个新的变量,而是给已经定义的变量重新起个别名;指针用*定义,引用用&;两者都有值传递,值传递是都是生成临时变量接受实参的值,引用作为参数时,如果形参为引用类型,那么形参就是实参的别名;传值返回时,是将ret值放到eax寄存器中,传引用返回时,是取ret的地址到eax寄存器中;
引用和指针的区别和联系:
(1)引用只能在定义时初始化一次,之后不能改变指向其它变量;指针变量的值可变。
(2)引用必须指向有效的变量,指针可以为空。
(3)sizeof指针对象和引用对象的意义不一样,sizeof引用得到的是所指向的变量的大小,而sizeof指针是对象地址的大小。
(4)指针和引用自增(++)自减(--)意义不一样。
(5)相对而言,引用比指针更安全。