女装电子商务网站建设,阳江招聘网娱乐业,济南网站建设公司晟创未来,网站建设的公司服务如何在防止一个类被其他的类继承呢#xff1f;
如果是仅仅为了达到这个目的可以直接把这个类的构造函数设置成私有的#xff0c;这样就杜绝了其他类的继承。也相当于毁掉了这个类#xff08;无法再创造出自己的对象#xff09;。
那么怎么样既要保证这个类的完整性#…如何在防止一个类被其他的类继承呢
如果是仅仅为了达到这个目的可以直接把这个类的构造函数设置成私有的这样就杜绝了其他类的继承。也相当于毁掉了这个类无法再创造出自己的对象。
那么怎么样既要保证这个类的完整性又防止其他类的继承呢
这就要借助友元来实现因为友元是不可以被继承的。如果一个类的构造函数要借助它的友元类那么继承了这个类的类就无法构造自己的对象。从而杜绝了被继承
#include iostream
using namespace std;
class C;class BASE {
private:BASE() {}friend class C; //设class C为class BASE的友元
};class C : public virtual BASE
{};class D : public C
{};int main()
{C c;//D d; 不可以实例化对象
}
为什么class C要虚拟继承class BASE 而不是直接继承呢 参考资料
c如何防止一个类被其他类继承