厦门网站建设企,找考卷做要去哪个网站,网站的ico图标做多大,四川鸿业建设集团公司网站✨✨ 欢迎大家来访Srlua的博文#xff08;づ#xffe3;3#xffe3;#xff09;づ╭❤#xff5e;✨✨ #x1f31f;#x1f31f; 欢迎各位亲爱的读者#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢#xff0c;在这里我会分享我的知识和经验。づ3づ╭❤✨✨ 欢迎各位亲爱的读者感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢在这里我会分享我的知识和经验。 希望在这里我们能一起探索IT世界的奥妙提升我们的技能。 记得先点赞后阅读哦~ 所属专栏C/C 欢迎访问我的主页Srlua小谢 获取更多信息和资源。✨✨
目录
类的6个默认成员函数
默认构造函数Default Constructor
特性
1. 函数名与类名相同。
2. 无返回值。
3. 对象实例化时编译器自动调用对应的构造函数。
4. 构造函数可以重载
5. 如果类中没有显式定义构造函数则C编译器会自动生成一个无参的默认构造函数一旦用户显式定义编译器将不再生成。
6.关于编译器生成的默认成员函数为什么在不实现构造函数的情况下编译器会生成默认的构造函数。但是看起来默认构造函数又没什么用d对象调用了编译器生成的默认构造函数但是d对象_year/_month/_day依旧是随机值。也就说在这里编译器生成的默认构造函数并没有什么用
7.无参的构造函数和全缺省的构造函数都称为默认构造函数并且默认构造函数只能有一个。
析构函数Destructor
特性
1. 析构函数名是在类名前加上字符 ~。
2. 无参数无返回值类型。
3. 一个类只能有一个析构函数。若未显式定义系统会自动生成默认的析构函数。
4. 对象生命周期结束时C编译系统系统自动调用析构函数。
5. 关于编译器自动生成的析构函数是否会完成一些事情呢下面的程序我们会看到编译器生成的默认析构函数对自定类型成员调用它的析构函数
6. 如果类中没有申请资源时析构函数可以不写直接使用编译器生成的默认析构函数比如Date类有资源申请时一定要写否则会造成资源泄漏比如Stack类。 类的6个默认成员函数
如果一个类中什么成员都没有简称为空类。
空类中真的什么都没有吗并不是任何类在什么都不写时编译器会自动生成以下6个默认成员函数。
默认成员函数用户没有显式实现编译器会生成的成员函数称为默认成员函数。
class A {} 默认构造函数Default Constructor
如果在类中没有显式地定义构造函数编译器会自动生成 一个默认构造函数。默认构造函数不接受任何参数用于创建对象时进行初始化操作。
class MyClass {
public:// 默认构造函数MyClass() {// 构造函数体}
};对于以下Date类代码示例:
对于Date类可以通过 Init 公有方法给对象设置日期但如果每次创建对象时都调用该方法设置信息未免有点麻烦那能否在对象创建时就将信息设置进去呢
构造函数是一个特殊的成员函数名字与类名相同,创建类类型对象时由编译器自动调用以保证每个数据成员都有 一个合适的初始值并且在对象整个生命周期内只调用一次。
特性
构造函数是特殊的成员函数需要注意的是构造函数虽然名称叫构造但是构造函数的主要任务并不是开空间创建对象而是初始化对象。
特征如下
1. 函数名与类名相同。
2. 无返回值。
3. 对象实例化时编译器自动调用对应的构造函数。
4. 构造函数可以重载
5. 如果类中没有显式定义构造函数则C编译器会自动生成一个无参的默认构造函数一旦用户显式定义编译器将不再生成。
不显示定义编译器自动生成显示定义
6.关于编译器生成的默认成员函数为什么在不实现构造函数的情况下编译器会生成默认的构造函数。但是看起来默认构造函数又没什么用d对象调用了编译器生成的默认构造函数但是d对象_year/_month/_day依旧是随机值。也就说在这里编译器生成的默认构造函数并没有什么用 解答C把类型分成内置类型(基本类型)和自定义类型。 内置类型就是语言提供的数据类型如int/char...自定义类型就是我们使用的class/struct/union等自己定义的类型对于下面的程序就会发现编译器生成默认的构造函数会对自定类型成员_t调用的它的默认成员函数 7.无参的构造函数和全缺省的构造函数都称为默认构造函数并且默认构造函数只能有一个。 注意无参构造函数、全缺省构造函数、我们没写编译器默认生成的构造函数都可以认为是默认构造函数。 对重载函数的调研不明确有歧义 析构函数Destructor
与构造函数对应析构函数用于在对象销毁时进行清理工作释放对象占用的资源。如果没有显式定义析构函数编译器也会生成一个默认的析构函数。对象在销毁时会自动调用析构函数完成对象中资源的清理工作。
class MyClass {
public:// 析构函数~MyClass() {// 析构函数体}
};特性
析构函数是特殊的成员函数其特征如下
1. 析构函数名是在类名前加上字符 ~。
2. 无参数无返回值类型。
3. 一个类只能有一个析构函数。若未显式定义系统会自动生成默认的析构函数。 注意析构函数不能重载 4. 对象生命周期结束时C编译系统系统自动调用析构函数。
5. 关于编译器自动生成的析构函数是否会完成一些事情呢下面的程序我们会看到编译器生成的默认析构函数对自定类型成员调用它的析构函数 6. 如果类中没有申请资源时析构函数可以不写直接使用编译器生成的默认析构函数比如Date类有资源申请时一定要写否则会造成资源泄漏比如Stack类。
希望对你有帮助加油
若您认为本文内容有益请不吝赐予赞同并订阅以便持续接收有价值的信息。衷心感谢您的关注和支持