C++: Protected Class Constructor
问题 If a class is always going to be inherited, does it make sense to make the constructor protected ? class Base { protected: Base(); }; class Child : protected Base { public: Child() : Base(); }; Thanks. 回答1: That only makes sense if you don't want clients to create instances of Base , rather you intend it to be base-class of some [derived] classes, and/or intend it to be used by friends of Base (see example below). Remember protected functions (and constructors) can only be invoked from