如果一个类总是要被继承,那么创建构造函数是否有意义protected
?
class Base
{
protected:
Base();
};
class Child : protected Base
{
public:
Child() : Base();
};
Thanks.
仅当您不希望客户端创建实例时,这才有意义Base
,而是您打算将其作为某些[派生]类的基类,和/或打算将其由以下类的朋友使用Base
(参见下面的示例)。记住protected
函数(和构造函数)只能从派生类调用,friend
类。
class Sample;
class Base
{
friend class Sample;
protected:
Base() {}
};
class Sample
{
public:
Sample()
{
//invoking protected constructor
Base *p = new Base();
}
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)