为了账号安全,请及时绑定邮箱和手机立即绑定

构造函数只能在public下定义吗

构造函数只能在public下定义吗

正在回答

2 回答

不一定, 你也可以定义在 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(); 来访问!

0 回复 有任何疑惑可以回复我~

不是的

public只是影响是否可访问 可能定义了却不能访问。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103410    人
  • 解答问题       701    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

构造函数只能在public下定义吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信