鱼C论坛

 找回密码
 立即注册
查看: 3910|回复: 3

子类的构造函数的参数 必须和基类的构造函数的参数相同吗?

[复制链接]
发表于 2016-1-2 16:04:36 | 显示全部楼层 |阅读模式
20鱼币
子类的构造函数的参数 必须和基类的构造函数的参数相同吗?

最佳答案

查看完整内容

既然是派生类 那么派生类和基类一定是一个is-a关系或者是has-a的关系 语法上可以你在派生类中完全不管基类的定义, 继承过来后而重新对所有数据成员完全重新赋值, 行为上这看起来完全像是重定义为另一个类, 和基类没啥关系 这合法(语法) 但不合理, 既然是基类和派生类, 至少其中一点一定是肯定的, 基类有的, 子类也都应该有, "派生类应通过使用基类构造函数尊重基类的初始化意图, 而不是在派生类构造函数函数体中对这些成 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-1-2 16:04:37 | 显示全部楼层
本帖最后由 ryxcaixia 于 2016-1-5 11:08 编辑
class  fulei
{
public:
        std::string w;
        fulei(std::string theName)
        {
                w=theName;
        }

protected:
private:
};

class MyClass :public fulei
{
public:
        MyClass(std::string theName): fulei(theName) {}


private:

};

既然是派生类 那么派生类和基类一定是一个is-a关系或者是has-a的关系
语法上可以你在派生类中完全不管基类的定义, 继承过来后而重新对所有数据成员完全重新赋值, 行为上这看起来完全像是重定义为另一个类, 和基类没啥关系
这合法(语法) 但不合理, 既然是基类和派生类, 至少其中一点一定是肯定的, 基类有的, 子类也都应该有,

"派生类应通过使用基类构造函数尊重基类的初始化意图, 而不是在派生类构造函数函数体中对这些成员赋值"
具体详见c++primer 第四版p493 关键概念:尊重基类接口
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-1-3 18:35:57 | 显示全部楼层
不需要,子类继承了基类的参数,同时也可以添加自己的参数,只是继承的参数不必再写一遍而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-1-3 20:02:11 | 显示全部楼层
本帖最后由 y290176346 于 2016-1-3 20:03 编辑
丿fun 发表于 2016-1-3 18:35
不需要,子类继承了基类的参数,同时也可以添加自己的参数,只是继承的参数不必再写一遍而已

class Lovers
{
public:
    Lovers(std::string theName);
    void kiss(Lovers *lover);
    void ask(Lovers *lover, std::string something);

protected:
    std::string name;

    friend class Others;    // 祸根,交友不慎。。。。。。
};

class Boyfriend : public Lovers
{
public:
    Boyfriend(std::string theName);
};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class  fulei
{
public:
        std::string w;
        fulei(std::string theName)
        {
                w=theName;
        }

protected:
private:
};
class MyClass :public fulei
{
public:
        MyClass(std::string theName)
        {

        }
private:

};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
为什么第一个编译能通过  第二个就通过不了呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 16:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表