背景色yellow |
那么怎么样既要保证这个类的完整性,又防止其他类的继承呢?
- 这就要借助友元来实现,因为友元是不可以被继承的。如果一个类的构造函数要借助它的友元类,那么继承了这个类的类就无法构造自己的对象。从而杜绝了被继承。
#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; // 不可以实例化对象
}``