继承派生的类构造函数

inheritance derived class constructor

本文关键字:构造函数 派生 继承      更新时间:2023-10-16

当我尝试初始化派生类时,我遇到了一个错误(它说Euro_call不可访问)。有没有办法在不对代码进行重大更改的情况下修复错误?我欢迎任何建议。

class Euro{
protected:
double S;     // spot price
public:
Euro(const double&);
~Euro(){};
};
Euro::Euro(const double& _s):S(_s){}

class Euro_call:public Euro{    
public:
Euro_call(const double&);
~Euro_call(){};
};
Euro_call::Euro_call(const double& _s):Euro(_s){};
class main{
Euro_call a(2.0);   
}

此程序缺少一个入口点。

class main{应该是int main() {,并且程序可以返回0以向操作系统指示成功完成。


的末尾还有一个冗余;

Euro_call::Euro_call(const double& _s) :Euro(_s) {};

因此,完整的程序,更改为最后4行:

class Euro {
protected:
    double S;     // spot price
public:
    Euro(const double&);
    ~Euro() {};
};
Euro::Euro(const double& _s) :S(_s) {}

class Euro_call :public Euro {
public:
    Euro_call(const double&);
    ~Euro_call() {};
};
Euro_call::Euro_call(const double& _s) :Euro(_s) {}
int main() {
    Euro_call a(2.0);
    return 0;
}