网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

C++该在什么时候定义构造函数

本篇内容主要讲解“C++该在什么时候定义构造函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++该在什么时候定义构造函数”吧!

创新互联建站是专业的向阳网站建设公司,向阳接单;提供成都网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行向阳网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

C.40:如果类包含不变式,则定义构造函数
Reason(原因)

这就是构造函数存在的目的。 

Example(示例)
 
class Date {  // a Date represents a valid date
             // in the January 1, 1900 to December 31, 2100 range
   Date(int dd, int mm, int yy)
       :d{dd}, m{mm}, y{yy}
   {
       if (!is_valid(d, m, y)) throw Bad_date{};  // enforce invariant
   }
   // ...
private:
   int d, m, y;
};

在构造函数中通过Ensure表现不变式通常都是一个好主意。   

Note(注意)

为了方便起见,即使类不包含不变式也可以为类定义构造函数。 

struct Rec {
   string s;
   int i {0};
   Rec(const string& ss) : s{ss} {}
   Rec(int ii) :i{ii} {}
};

Rec r1 {7};
Rec r2 {"Foo bar"};
   
Note(注意)

C++11的初始化列表消除了很多构造函数存在的必要性。例如: 

struct Rec2{
   string s;
   int i;
   Rec2(const string& ss, int ii = 0) :s{ss}, i{ii} {}   // redundant
};

Rec2 r1 {"Foo", 7};
Rec2 r2 {"Bar"};

Rec2的构造函数是多余的。同时成员初始化器提供的int的默认值会做得更好。

Enforcement(实施建议)
  • 如果类包含用户定义的拷贝操作但是没有提供构造函数(用户定义的拷贝是类具有不变式的明显标志)

到此,相信大家对“C++该在什么时候定义构造函数”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


文章题目:C++该在什么时候定义构造函数
文章链接:http://bjjierui.cn/article/jgcics.html

其他资讯