三大函数:拷贝赋值、拷贝构造、析构
- class内有指针的情况下不能使用编译器默认的构造、赋值、析构函数。特别是拷贝构造,拷贝赋值函数。
- 对于含有指针的拷贝赋值函数,首先要进行自我赋值检测(如果是自我赋值而没有自我赋值检测会造成严重的错误),其次要将之前的指针指向的内容释放掉,否则会造成内存泄漏。
- 在class内的成员变量和成员函数中,如果成员变量前加static修饰符则其在内存内某一个地方单独存在,无论创建多少object都只有一份。在成员函数前加static修饰,则函数变为静态成员函数,它不能使用默认的this指针,故只能操作静态成员变量。对于静态成员变量应该在class声明后进行初始化操作。 调用static函数的方式有两种:1.通过object调用2.通过class name调用。
- class模板以
template <typename T>
开头 - function模板以
template <class T>
开头 - 使用命名空间
namespace std {
...//定义 可以分开写,不需要一次全部写完
}
- 转换函数重载
operator type() const;