注册 登录
编程论坛 C++教室

关于父类没有缺省的构造函数时,子类如何建立构造函数

q42946456 发布于 2014-05-25 12:58, 445 次点击
我们都知道,在类定义了带参数的构造函数后,便不再提供默认构造函数,但是子类的构造函数需要父类的缺省构造函数才能定义,否则编译时将会出错,这时有两种解决方法,一种是利用构造函数重载,重载一个缺省的构造函数,另一种方法如下;
例:
class Tree   //构造一个树类作为父类
{
private:
    int height;
    int circu;
public:
    Tree(int height,int circu) //传递树的高度和周长
    {
        this -> height = height;   //使用this指针来传递数据到私有变量
        this -> circu = circu;
    }
   
    void TreeLife()   //树类的一个方法
    {
        //代码
    }
};

class YangTree :public Tree  //定义一个杨树类,作为子类,使用public继承
{
public:
    YangTree(): Tree(20, 1)    //此处为第二种方法的核心,在构造子类时,通过这种语法方式给父类的带参构造函数传递参数,使其初始化,从而初始化子类
    {
        //代码
    }
};
初学C++,第一次发帖,勿喷
1 回复
#2
funyh2502014-05-25 13:57
在学习过程中能够提出问题比较好的

但是有些“问题”其实不是问题  比如你这个

在你今后看的代码多了 自然而然就总结出来了 这比从别人那里死记硬背过来的要深刻百倍

我也是正在学习中的
1