如果一个类总是会被继承,将构造函数设置为protected
是否有意义?
class Base
{
protected:
Base();
};
class Child : protected Base
{
public:
Child() : Base();
};
感谢您。
如果一个类总是会被继承,将构造函数设置为protected
是否有意义?
class Base
{
protected:
Base();
};
class Child : protected Base
{
public:
Child() : Base();
};
Base
实例的情况下才有意义,而是打算将其作为一些[派生]类的基类,并/或者打算让Base
的友元使用(请参见下面的示例)。 请记住,受保护的函数(和构造函数)只能从派生类和friend
类中调用。class Sample;
class Base
{
friend class Sample;
protected:
Base() {}
};
class Sample
{
public:
Sample()
{
//invoking protected constructor
Base *p = new Base();
}
};