构造函数只能在public下定义吗
构造函数只能在public下定义吗
构造函数只能在public下定义吗
2016-06-26
不一定, 你也可以定义在 protected/private 中, 但如果这样地话, 你就没办法实例化这个类了! 有的时候, 会要求禁止用户创建类的实例就会这么用的, 比如设计模式中有一个单件模式, 就是限制一个类只能有一个实例的: class singleton { private: singleton() {} ~singleton() {} public: static singleton &get_instance(void) { static singleton _inst; return _inst; } public: void foo(void) { } }; 这样可以防止用户创建自己的实例(编译会报错), 而用户想访问 singleton 类地话可以通过 singleton::get_instance().foo(); 来访问!
举报