1、方法一 将其构造函数声明为私有的

最直观的解决方法就是将其构造函数声明为私有的,这样就可以阻止子类构造对象了。但是这样的话,就无法构造本身的对象了,就无法利用了。
既然这样,我们又可以想定义一个静态方法来构造类和释放类。

#include
using namespace std;
class A
{
    public:
       static A* Construct(int n)
       {
           A *pa = new A;
           pa->num = n;
           cout<<"num is:"<num<num<

2、方法二 利用友元不能被继承的特性,可以实现这样的类。

Continue reading