I am wondering whether it makes sense to have a class without constructor if the derived classes have one. If not, is there a way of doing what I want differently?
My case is the following: I want the users to only use the derived classes, but those have data members and methods in common.
EDIT: as default constructors exist for classes, it means that the user can always create an instance of Instrument directly, then how can I do what I want?
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;
};
 
     
     
     
    