您的位置:首页 > 编程语言 > C语言/C++

C++——构造函数和析构函数的调用

2018-03-14 14:34 381 查看
题目:看下列程序输出结果

#include<iostream>
using namespace std;

class A
{
public:
A(int n = 2) :m_i(n) {}
~A() { cout << m_i; }

protected:
int m_i;
};

class B :public A {
private:
A m_a1;
A m_a2;
public:
B(int n):m_a2(n),m_a1(m_i+1){}
~B() {
cout << m_i;

--m_i; }
};

int main()
{
B b(5);
return 0;
}

只需要记住一句话:先构造的后析构
构造:①声明b(5),先构造A,再构造B②B的构造函数调用了m_a1,m_a2     。  B先声明m_a1,所以先构造A(3),;后声明m_a2,再构造A(5)③等两个参数都构造好之后,再构造B构造A(m_i=2)——构造A(3)  (m_i=3)——构造A(5)  (m_i=5)——构造B

析构:析构B——析构A(5)——析构A(3)——析构A2 5 3 1 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C
相关文章推荐