关于构造函数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:58:24
一个类的对象作为另一个类的成员,
譬如
class A
{public: A(){cout<<"A";}

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

B b;

这样应该先调用A的构造函数,然后是B的构造函数;
析构时则是反的,是吧。这种用法是叫什么?那B类是不是相当于是A的派生类了?
}
可是好像客观上也是象派生一样,先调基类的构造
再是派生类的构造,析构则相反

A B不存在继承关系,当类的对象作为其它类的成员时,遵循"由内向外构造,由外向内析构"的规律,像你那个例子中久先构造A,再构造B;而析构时先析构B,再析构A;虽然于派生的调用顺序相似,但不存在这种关系,一般来说如果类A的私有数据成员是类B的对象时,类A可以用来作为类B的代理类

B不是A的派生类,派生类要有继承关系,你这个A类的对象只是B类的一个成员而已

你说的那个构造和析构的顺序正确,那个叫嵌套类.
B不时A的派生类,
class B:public A
这样的才叫派生。
但是继承关系不明确,也不是继承的形式.
只是一个成员

对象成员