有没有构造函数的类是否有意义?

ast*_*ths 0 c++ class

我想知道如果派生类有一个没有构造函数的类是否有意义.如果没有,有没有办法以不同的方式做我想要的事情?

我的情况如下:我希望用户只使用派生类,但这些类具有共同的数据成员和方法.

编辑:由于类存在默认构造函数,这意味着用户可以直接创建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;
};
Run Code Online (Sandbox Code Playgroud)

Sto*_*ica 5

我希望用户只使用派生类,但这些类具有共同的数据成员和方法

拥有您的默认(或任何其他)c'tor,但声明它具有protected访问权限.现在只有派生类可以调用它.有效地使其仅在继承时可用.

class instrument{
    public:
        double get_price();
        std::string get_udl();

    protected:
        instrument() = default;

    private:
        double m_price;
        std::string m_udl;

};
Run Code Online (Sandbox Code Playgroud)

这也避免了使类抽象相关的开销.如果您不需要多态,则不应仅仅使用它来使类仅可用作基类.