A 是一个类, 如何让A* a = new A()编译不过
是在说怎么让A不能创建对象?设计模式?抽象类?? 设计模式 抽象类 一道面试题
[解决办法]
A 是一个类, 如何让A* a = new A()编译不过
这是考智力么? 方法比较多:
A不提供默认构造函数(也就是构造函数都有参数, 编译报错: 没有提供合适的参数来调用构造函数
A有默认构造函数, 但是为protected/protected, 编译报错: 构造函数为私有/保护
给A加上template <typename T>, 编译报错: 没有提供合适的类型参数来实例化
重载void* operator new(size_t size)为private/protected, 编译报错: new 操作符私有/保护
定义一个纯虚的析构函数 virtual pureFunc()=0; 编译报错: 抽象类无法实例化