前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对象成员与本类的构造与析构顺序(C++)

对象成员与本类的构造与析构顺序(C++)

作者头像
LonelyEnderman
发布2022-10-27 14:03:07
2690
发布2022-10-27 14:03:07
举报

定义

当一个类中的成员作为另一个类的对象,称该成员为对象成员 例如:

代码语言:javascript
复制
class A{}
class B
{
    A a;
}

B类中有对象A作为成员,A为对象成员

验证

示例代码:

代码语言:javascript
复制
#include<iostream>
#include<string>
using namespace std;

//手机类
class Phone
{
public:
    Phone(string name)
    {
        cout << "Phone构造函数调用" << endl;
        phName = name;
    }

    ~Phone()
    {
        cout << "Phone的析构函数调用" << endl;
    }

    //型号
    string phName;
};

//人类
class Person
{
public:
    //Phone pPhone = pName 隐式转换(Phone pPhone = Phone(pName))
    //利用初始化列表初始化属性
    Person(string name, string pname):pName(name),pPhone(pname)
    {
        cout << "Person构造函数调用" << endl;
    }

    ~Person()
    {
        cout << "Person的析构函数调用" << endl;
    }

    //姓名
    string pName;
    //手机
    Phone pPhone;
};

void test01()
{
    Person p("张三", "K20pro");
    cout << p.pName << "手持" << p.pPhone.phName << endl;
}
int main()
{
    test01();
    system("pause");
}

输出结果:

file
file

结论

对于Person类来说

  • 构造时先构造对象成员再构造本类
  • 析构时先析构本类再析构对象成员
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-3-15 1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义
  • 验证
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档