C++类提供的默认函数

在创建一个类的时候C++会默认提供六个个函数:1.空构造函数;2. 空析构函数;3:赋值构造函数;4:拷贝构造函数;5.取地址符构造函数;6. 带const的取地址符。

需要注意的点:

1. 显示定义构造函数后,编译器不会再提供默认构造函数。需要自己显式定义。

2. 默认的拷贝构造函数和赋值构造执行的是浅拷贝,如果存在指针类型会存在double free问题。详情看这篇文章

3. 根据effective C++描述,这些默认函数只有被需要的时候编译器才会创建这些函数。

4. 类中存在引用,const变量这种必须要赋值函数的时候编译器会拒绝提供默认构造函数(因为他也不知道怎么初始化)。

你可能感兴趣的:(C++类提供的默认函数)