构造函数的执行顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构造函数的执行顺序相关的知识,希望对你有一定的参考价值。
先是代码:
#include<iostream> #include<string> using namespace std; class Demo { public: Demo(string s); ~Demo(); private: string m_s; }; Demo::Demo(string s):m_s(s){} Demo::~Demo(){cout<<m_s<<endl;} void func() { Demo boj1("1"); } Demo obj2("2"); int main() { //局部对象 Demo obj3("3"); Demo *pobj4=new Demo("4"); func(); cout<<"main"<<endl; return 0; }
然后运行结果是
1 main 3 2
这里分析下堆栈和构造函数初始化中的函数调用顺序:
以上是关于构造函数的执行顺序的主要内容,如果未能解决你的问题,请参考以下文章
父类,子类,静态属性,静态代码块,构造代码块,构造函数,执行顺序