C++编程注意事项
1、初始化所有指针。
2、
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。(1)指向常量的指针:
(2)常量指针:指针本身为常量:
3、若循环体内部包含有向vector对象添加元素的语句,则不能使用范围for循环。
4、字符数组要注意字符串字面值结尾处还有一个空字符。
5、数组的指针及数组的引用
6、C++中多维数组指的是数组的数组。
7、要使用for循环语句处理多维数组,除了最内层的循环外,其他所有循环的控制变量都应是引用类型。
8、异常检测&异常处理
throw&try(catch)
9、如果函数无需改变引用形参的值,最好将其声明为常量引用。
10、拷贝构造函数
几个原则:
C++ primer p406 :拷贝构造函数是一种特殊的构造函数,具有单个形参,该形参(常用const修饰)是对该类类型的引用。当定义一个新对象并用一个同类型的对象对它进行初始化时,将显示使用拷贝构造函数。当该类型的对象传递给函数或从函数返回该类型的对象时,将隐式调用拷贝构造函数。
C++支持两种初始化形式:
拷贝初始化 int a = 5; 和直接初始化 int a(5); 对于其他类型没有什么区别,对于类类型直接初始化直接调用实参匹配的构造函数,拷贝初始化总是调用拷贝构造函数,也就是说:
A x(2); //直接初始化,调用构造函数 A y = x; //拷贝初始化,调用拷贝构造函数
必须定义拷贝构造函数的情况:
只包含类类型成员或内置类型(但不是指针类型)成员的类,无须显式地定义拷贝构造函数也可以拷贝;有的类有一个数据成员是指针,或者是有成员表示在构造函数中分配的其他资源,这两种情况下都必须定义拷贝构造函数。
什么情况使用拷贝构造函数:
类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数:
- (1)一个对象以值传递的方式传入函数体
- (2)一个对象以值传递的方式从函数返回
- (3)一个对象需要通过另外一个对象进行初始化。
11、静态成员函数与普通成员函数的区别:
- 静态成员函数没有 this 指针,只能访问静态成员(包括静态成员变量和静态成员函数)。
- 普通成员函数有 this 指针,可以访问类中的任意成员;而静态成员函数没有 this 指针。
12、类的多继承之环状继承
13、纯虚函数
想要在基类中定义虚函数,以便在派生类中重新定义该函数更好地适用于对象,但是在基类中又不能对虚函数给出有意义的实现,这个时候就会用到纯虚函数。
