c++ 构造函数初始化的执行次序

#include<iostream>

using namespace std;

class ThisApp {
public:
	int a=0;
	ThisApp();
	int b=6;
	int q;
	void add(int m,int n);
private:
	int c=5;
	int d;
};

ThisApp::ThisApp() 
{
	add(4, 0);
	cout << "kias" << endl;
}
void ThisApp::add(int m,int n)
{
	q = 5;
	a + b;
	cout << "m+n = " << m+n << endl;
}
int main() 
{
	ThisApp myapp;
	myapp.add(4, 6);
}

/*
*                             特别说明
*1.当类中没有初始化的元素并且没有定义构造函数时,在定义类对象的时候不会执行任何指令
*  eg:  ThisApp myapp; 单步调试不会执行这句话
*
*2.当类中只初始化元素但没有定义构造函数时,在定义类对象的时候只会执行定义类对象的指令
*  eg:  ThisApp myapp; 只会执行者一条指令
*
*3.当类中初始化元素而且同时定义构造函数时,在定义类的时候不但会执行定义类对象指令还会执行初始化
*  元素的指令。
*   eg: 这里会先执行 ThisApp构造函数的 { ,之后再执行初始化元素的指令,之后再执行ThisApp中的内容
*      最后执行 } 结束
* 
*
*  注意: 以上的初始化操作不分 pbulic 还是 private 并且执行顺序是从上到下的,即先定义的先执行
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值