0. 赋值运算符的重载
在C++中,写赋值运算符的重载的时候,一定要考虑自赋值的情况
1. 定义C++函数
在定义C++函数的时候我们尽量把这个函数里面的参数赋初值,还有就是构造函数中尽量去使用初始化成员列表去初始化这个成员变量,函数中注意const的使用
2. 析构函数判断
析构函数里面,最好加一个判断,一般析构函数里面做的是一些清理的工作,所谓清理的工作大多是一些动态内存开辟出来的一些空间,这些空间一般用一个指针去维护它,我们在回收的时候,首先应该判断这个指针指针是否为空,然后再去回收它。
3.拷贝构造函数
我们在写类的时候,尽量去写拷贝构造函数,防止出现浅拷贝的问题
4. memcpy函数
memcpy拷贝函数的使用是memcpy(需要写入的地址,被写入的内容的地址,写入的字节的大小)
5.写时拷贝
就是使用浅拷贝,但是在调用析构函数的时候不是一直释放它,而是在使用浅拷贝的过程中使用一个计数器,这样在释放的时候不直接释放它,而是使计数器减一,等到计数器为1的时候在释放他
6. 赋值运算符的重载
赋值运算符重载的时候,一定要考虑自赋值的问题
7. size_t
在有的地方尽量多使用size_t
8. assert
尽量多使用assert自查
9. 子类调用父类的构造函数
class BadAlloc :public Exception
{
public:
BadAlloc(const char* msg = "")
:Exception(1, "BadAlloc")
{
_errMsg += msg;
}
void What()
{
cout << _errId << endl;
cout << _errMsg << endl;
}
};