在定义类时,将构造函数放在了private或protected里面,编译时都会出现类似错误
t.cpp
vs2005编译:

g++4.7.2编译:

错误原因很简单,定义变量a时,会调用a的自定义构造函数,而a的自定义构造函数是private的,不可以被外部直接调用。解决办法很简单。将自定义构造函数放在public里面。若是不需要,也可以不定义构造函数,系统会生成默认构造函数来调用(默认构造函数是public的)
将构造函数设为私有,一般在单例模式中使用设计c++类,用于确保不会被外部任意创建实例