【发布时间】:2018-06-12 18:50:10
【问题描述】:
我想知道如果派生类有一个没有构造函数的类是否有意义。如果没有,有没有办法以不同的方式做我想做的事?
我的情况如下: 我希望用户只使用派生类,但它们具有共同的数据成员和方法。
编辑:由于类存在默认构造函数,这意味着用户始终可以直接创建 Instrument 的实例,那么我该怎么做?
class instrument{
public:
double get_price();
std::string get_udl();
private:
double m_price;
std::string m_udl;
};
class stock : public instrument{
public:
double get_dividend();
private:
double m_dividend;
};
class option : public instrument{
public:
double get_strike();
private:
double m_strike;
};
【问题讨论】:
-
instrument有一个隐式声明的默认构造函数。你不知道吗? -
不,我不知道,所以我不能阻止用户直接创建仪器实例?那么有没有办法以不同的方式做我想做的事?
-
您如何设想
stock为instrument的私有成员设置值? -
通过在构造函数中添加计算价格或初始化的方法