C++ 初始化列表、对象创建/销毁过程、this指针

C++ 初始化列表、对象创建/销毁过程、this指针

初始化列表

初始化列表是构造函数的一种特殊语法,只能在构造函数中使用,它的主要用处是给类的成员变量进行初始化。
class 类名
{
    成员变量;
public:
    类名(形参列表):成员变量名(初始化数据) , ...
    {

    }
}

1、可以区别同名的参数和成员变量,使用同名参数给成员变量初始化。
2、是唯一正常初始化const属性成员变量的方法。
3、可以调用成员类、父类的有参构造。

对象的创建和销毁过程

对象的创建过程:
    1、给对象分配它所需要的内存(堆,栈)
        Test* t = new Test; // 堆
        Test t; // 栈
    2、执行初始化列表
        a、按照继承表的顺序,执行父类的构造函数,与初始化列表无关。
        b、按照成员的定义顺序,执行成员的构造函数,与初始化列表无关。
        c、初始化成员变量
    3、执行构造函数,分配、申请资源、完成准备工作
对象的销毁过程:
    1、执行对象的析构函数,释放资源、保存数据。
    2、按照成员的定义顺序,逆序执行成员的析构造函数。
    3、按照继承表的顺序,逆序执行父类的析构函数。
    4、销毁对象的内存。

this指针

成员函数是如何区别调用它的对象?
    1、对象所占用内存中没人存储成员函数指针,只存储了它的成员变量。
    2、成员函数有个隐藏的参数叫this,就是该类型的指针,当在成员函数中访问成员变量时,隐藏的加了this指针。
常对象与常函数:
    1、被 const 修饰过的对象,不能调用普通的成员函数,因为 const 对象获取到的this指针同样具有const属性,而普通的成员函数的this不具备const属性,所以无法调用。

    2、成员函数的格式末尾添加 const 该成员函数的this指针就具备了 const 属性,这种成员函数也叫作常函数。
        返回值 函数名(参数列表) const
        {

        }
        普通对象和常对象都可以调用常函数,但常对象只能调用常函数。
        普通成员函数和常函数都可以调用常函数,但常函数只能调用常函数。
        常函数与普通成员函数(格式一模一样),可以形成重载。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值