op8278 2015-05-11 09:40 采纳率: 100%
浏览 1906
已采纳

求解C++继承类构造函数的简单问题(类内声明,类外定义)

class person
{
public:
person(int num1, string name1);
..
private:
int num;
string name;
};
person::person(int num1, string name1)
{
num = num1;
name = name1;
}

class student :public person
{
public:
student(int num1, string name1, int cnum1, float score1) :person(num1, name1);
...
private:
int cnum;
float score;
};

student::student(int num1, string name1, int cnum1, float score1) :person(num1, name1)
{
cnum = cnum1;
score = score1;
}

继承类的构造函数,在类内定义,类外声明,这种方式为什么不可以编译?

  • 写回答

3条回答 默认 最新

  • echoallen 2015-05-11 12:50
    关注

    声明的时候不能调用基类的构造函数,定义的时候才可以,因此,建议改为:
    class person
    {
    public:
    person(int num1, string name1);
    ..
    private:
    int num;
    string name;
    };
    person::person(int num1, string name1)
    {
    num = num1;
    name = name1;
    }
    class student :public person
    {
    public:
    student(int num1, string name1, int cnum1, float score1) ;
    ...
    private:
    int cnum;
    float score;
    };
    student::student(int num1, string name1, int cnum1, float score1) :person(num1, name1)
    {
    cnum = cnum1;
    score = score1;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?