企业网站设计建设/免费推广的方式有哪些
在定义类时,将构造函数放在了private或protected里面,编译时都会出现类似错误
t.cpp
class Ca{private:Ca(){}
};
int main(){Ca a;return 0;
}
vs2005编译:
g++4.7.2编译:
错误原因很简单,定义变量a时,会调用a的自定义构造函数,而a的自定义构造函数是private的,不可以被外部直接调用。解决办法很简单。将自定义构造函数放在public里面。若是不需要,也可以不定义构造函数,系统会生成默认构造函数来调用(默认构造函数是public的)
除非使用单例模式设计c++类,将构造函数设计成私有,用于确保不会被外部任意创建实例