首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于继承有关的构造函数,该怎么处理

2012-04-24 
关于继承有关的构造函数classA{public:A(){}voidprint(){cout A的print() endl}}classB:pub

关于继承有关的构造函数
class   A
{
public:
A()   {};      
                  void   print()   {   cout < < "A的print() " < <endl;   };
};

class   B   :   public   A
{
public:
B()   :   A()               //这里构造基类的构造函数时为什么如果用A::A().就报   错?原因是什么?
                  {   A::print();};       //而这里用了A::print()就对
}

[解决办法]
B的构造函数中初始化基类的部分,调用A的构造函数 没有必要A::A()
[解决办法]
因为构造函数是很特殊的函数,它只能用初始化列表语法来调用。
如果你单独A::A()如果能编译过,也只是得到一个A类型的临时对象,而不是初始化B类的基类部分。
C++就这么规定了。

热点排行