BestLoveS 发表于 2015-7-12 23:46:11

为什么输出是ABC啊?求助!


#include<iostream>
using namespace std;

class A
{
public:
    A()
    {   
      cout << "A";
    }   
};

class B
{
public:
    B()
    {   
      cout << "B";
    }   
};

class C:public A
{
    B b;

public:
    C()
    {   
      cout << "C";
    };
};

int main()
{
    C obj;

    return 0;
}

mse9591 发表于 2015-7-13 00:33:53

唉……看了第一句我就傻了……根本不知道是什么头文件!   路过马克下
说不定以后我也碰到了

小人 发表于 2015-7-13 08:56:05

C类继承 A类就会先调用A类的构造函数A类的构造函数打印'A'
C类 里面实例化一个B类 那么也执行 B类的构造函数
最后再执行 C类自己的构造函数   

所以由上可得   打印出 "ABC"   {:9_240:}

nin98 发表于 2015-7-13 12:05:44

C继承与 A先构造一个A
私有成员 b 是B的对象 构造一个B
本身c再构造一个C

BestLoveS 发表于 2015-7-13 18:59:24

小人 发表于 2015-7-13 08:56
C类继承 A类就会先调用A类的构造函数A类的构造函数打印'A'
C类 里面实例化一个B类 那么也执行 B类的构 ...

谢谢

BestLoveS 发表于 2015-7-13 19:00:21

nin98 发表于 2015-7-13 12:05
C继承与 A先构造一个A
私有成员 b 是B的对象 构造一个B
本身c再构造一个C

谢谢
页: [1]
查看完整版本: 为什么输出是ABC啊?求助!