设计一个能被继承的类,但是不能在外部环境创建该类的对象
题解:将构造 拷贝构造 赋值语句的重载 都设置为保护属性.派生类可以访问基类的保护方法,但是外部环境不能直接访问,所以不能在外部环境创建该类的对象
class Object
{
int value;
protected:
Object() {}
Object(const Object& obj) {}
Object& operator=(const Object& obj)
{
if (this != &obj)
{
this->value = obj.value;
}
return *this;
}
public:
~Object() {}
};
class Base :public Object
{
public:
Base() :Object() {}
};
int main()
{
Base base;//可以创建派生类
//Object obj;//不能被创建
}