C++学习心得

私有构造函数类的特点

  1. 不能实例化,因为实例化时类外部无法访问类的私有构造函数;
  2. 不能被继承,因为派生类无法调用类的私有构造函数
  3. 可以通过定义一个static方法或者友元类来创建类对象

示例

利用在某个static函数中创建了该class的对象,并以引用或者指针的形式将其返回,不能以值的形式返回(在函数执行完毕之后,对象会自动销毁,失去作用域)。

class WonderfulClass
{
public:
       static WonderfulClass* makeAnObject()
       {
              // 创建一个WonderfulClass对象并返回其指针

              return (new WonderfulClass);
       }
private:
       WonderfulClass() { }
};


int main()
{
       WonderfulClass *p = WonderfulClass::makeAnObject();

       ... // 使用*p


       delete p;  // Not neccesary here, but it's a good habit.

       return 0;
}

参考链接

C++私有构造函数

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 2,847评论 0 3
  • 1.C和C++的区别?C++的特性?面向对象编程的好处? 答:c++在c的基础上增添类,C是一个结构化语言,它的重...
    杰伦哎呦哎呦阅读 9,675评论 0 45
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,534评论 1 51
  • “我宣布,本届演讲比赛的冠军是……”,台下立刻息了声,就像一锅沸腾的开水突然被加了一瓢凉水,迅速回归平静,全场屏气...
    一只爱学习的鹿阅读 545评论 0 2
  • 书名:《带上灵魂去旅行》 作者:毕淑敏 金句:年龄像一把旋刀,削磨着我们的轮廓和意志,铸成了不同的框架,人生就在这...
    Echo_dc7d阅读 206评论 0 3