C++读书笔记——组成:对象作为类的成员

本文详细解释了在C++中,类成员对象的构造顺序及其重要性。成员对象按照它们在类中声明的顺序被构造,并且在宿主对象构造之前完成。此外,还讨论了如何正确地初始化成员对象以避免潜在的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 本人已经博客移至围观IT更多精彩内容请访问:围观IT

成员对象在类中定义声明的顺序(不是构造函数的成员初始化列表的顺序),并且在宿主对象构造之前建立。

Class Date

{

Public:

         Date();

void print();

~Date();

Private:

         Int month;

         Int day;

         Int year;

};

Class Employee

{

Public:

         Employee(const char * const, const char * const, const Date&, const Date &);

         Void print() const;

         ~Employee();

Private:

         Char firstName[25];

         Char lastName[25];

         Const Date birthDate;

         Const Date hireDate;

};

 

Employee:Employee(const char * const first, const char * const last, const Date &dateOfBirth, t Date &dateOfHire)

            :birthDate(dateOfBirth),

             hireDate(dateOfHire)

{

            ………..

}

当构造Employee对象时,首先依次构造birthDatehireDate对象,然后构造Employee对象,当析构函数调用时,根据构造顺序,放过来析构对象。

 

成员对象不一定需要显示的使用成员初始化器进行初始化。没有提供初始化器的时候,成员对象默认的构造函数会被隐式调用。(如果成员对象的类没有提供默认的构造函数,将产生一个编译错误),并可以用set函数进行函数重载,但这样相当于“双重初始化”。一次是成员对象在默认构造函数调用,另一次是在宿主对象的构造函数体重调用设置函数。所以应尽量通过成员初始化器显式的初始化成员对象

本人已经博客移至围观IT更多精彩内容请访问:围观IT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值