C++自动生成的成员函数
2013-04-12 02:42
211 查看
每个类都有构造函数和析构函数。如果程序员没有编写这些成员函数,C++将自动生成他们。
1、class::class()
默认的构造函数。
如果没有定义其它的构造函数就会自动生成。生成的代码使用随机值填充类的数据成员。
当类的变量不带参数时就会被自动调用,如:
class_type var;
2、class::class(const class& old_class)
copy构造函数。
除非程序员显式定义copy构造函数否则就会自动生成它。函数将原来类中的所有数据成员复制到新的类中。
创建一个变量的副本时会自动调用这个成员函数:
class_type first_var;
class_type second_var(first_var);
注意:如果不让编译器自动调用copy构造函数,可将它声明为private。
3、class::~class()
析构函数。
除非程序员定义一个析构函数,否则就会自动生成。
销毁变量时会自动调用析构函数,对于自动变量,这出现在变量定义块的结尾部分。全局和静态变量是在程序退出时被销毁的。
4、class class::operator = (const class& old_class)
赋值操作符,自动生成来处理一个对象到另一个对象的赋值。
1、class::class()
默认的构造函数。
如果没有定义其它的构造函数就会自动生成。生成的代码使用随机值填充类的数据成员。
当类的变量不带参数时就会被自动调用,如:
class_type var;
2、class::class(const class& old_class)
copy构造函数。
除非程序员显式定义copy构造函数否则就会自动生成它。函数将原来类中的所有数据成员复制到新的类中。
创建一个变量的副本时会自动调用这个成员函数:
class_type first_var;
class_type second_var(first_var);
注意:如果不让编译器自动调用copy构造函数,可将它声明为private。
3、class::~class()
析构函数。
除非程序员定义一个析构函数,否则就会自动生成。
销毁变量时会自动调用析构函数,对于自动变量,这出现在变量定义块的结尾部分。全局和静态变量是在程序退出时被销毁的。
4、class class::operator = (const class& old_class)
赋值操作符,自动生成来处理一个对象到另一个对象的赋值。
相关文章推荐
- 编译器为C++ 空类自动生成的成员函数
- C++空类编译器自动生成的6个成员函数
- [原]C++空类产生哪些成员函数 || C++类可以自动生成的6个成员函数
- C++空类产生哪些成员函数 || C++类可以自动生成的6个成员函数
- C++空类产生哪些成员函数 || C++类可以自动生成的6个成员函数
- C++空类编译器自动生成的6个成员函数
- C++空类编译器自动生成的6个成员函数
- <Effective C++>:Item 6 :明确拒绝不想编译器自动生成的函数
- 读书笔记_Effective_C++_条款六:若不想使用编译器自动生成的函数,就该明确拒绝
- c++空类中默认生成的成员函数
- Effective C++ Item 06-若不想编译器自动生成的函数,就该明确拒绝
- 隐式成员函数:由编译器自动生成的函数(自动是罪恶的根
- C++ 若不想使用编译器自动生成的函数,就该明确拒绝
- Effective C++ 条款6 若不想使用编译器自动生成的函数,就该明确拒绝
- c++不自动生成相关函数比如赋值、拷贝函数
- C++ - 默认生成的成员函数
- Effective C++ 第五 六条C++默认编写调用哪些函数,如何明确拒绝自动生成的函数
- C++编译器自动生成的函数(Effective C++之05)
- 如何禁止C++默认生成成员函数
- 关于 C++空类时编译器自动生成函数 总结