C++11中委托构造函数如何使用
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章将为大家详细讲解有关C++11中委托构造函数如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C++11之前的状况构造函数多了以后,几乎必
千家信息网最后更新 2025年02月02日C++11中委托构造函数如何使用
这篇文章将为大家详细讲解有关C++11中委托构造函数如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
C++11之前的状况
构造函数多了以后,几乎必然地会出现代码重复的情况,为了避免这种情况,往往需要另外编写一个初始化函数。例如下面的Rect类:
struct Point{
int x;
int y;
};
struct Rect{
Rect(){
init(0, 0, 0, 0, 0, 0);
}
Rect(int l, int t, int r, int b){
init(l, t, r, b, lc, fc, 0, 0);
}
Rect(int l, int t, int r, int b,
int lc, int fc){
init(l, t, r, b, lc, fc);
}
Rect(Point topleft, Point bottomright){
init(topleft.x, topleft.y,
bottomright.x, bottomright.y,
0, 0);
}
init(int l, int t, int r, int b,
int lc, int fc){
left = l; top = t;
right = r; bottom = b;
line_color = lc;
fill_color = fc;
//do something else...
}
int left;
int top;
int right;
int bottom;
int line_color;
int fill_color;
};
数据成员初始化之后要进行某些其他的工作,而这些工作又是每种构造方式都必须的,所以另外准备了一个init函数供各个构造函数调用。
这种方式确实避免了代码重复,但是有两个问题:
没有办法不重复地使用成员初始化列表
必须另外编写一个初始化函数。
C++11的解决方案
C++11扩展了构造函数的功能,增加了委托构造函数的概念,使得一个构造函数可以委托其他构造函数完成工作。使用委托构造函数以后,前面的代码变成下面这样:
struct Point{
int x;
int y;
};
struct Rect{
Rect()
:Rect(0, 0, 0, 0, 0, 0)
{
}
Rect(int l, int t, int r, int b)
:Rect(l, t, r, b, 0, 0)
{
}
Rect(Point topleft, Point bottomright)
:Rect(topleft.x, topleft.y,
bottomright.x, bottomright.y,
0, 0)
{
}
Rect(int l, int t, int r, int b,
int lc, int fc)
:left(l), top(t), right(r),bottom(b),
line_color(lc), fill_color(fc)
{
//do something else...
}
int left;
int top;
int right;
int bottom;
int line_color;
int fill_color;
};
关于C++11中委托构造函数如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
函数
代码
委托
工作
中委
内容
情况
成员
文章
方式
更多
知识
篇文章
不错
两个
办法
功能
又是
必然
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
福建正规网络技术标准
渗透测试数据库常见列名下载
mc服务器命令
世界互联网科技前十
午夜猎魂服务器维护
mysql数据库选择
数据库的数据划分方式
网络安全意识宣传口号
安卓测量软件开发技术
威海分销软件开发哪家便宜
岳阳软件开发技术好
数据库创建成功
手机软件开发培训课程
学设计好还是软件开发好
服务器硬盘的raid
河北潮流软件开发品质保障
株洲游戏软件开发招聘网
服务器跑代码跑一会就停了
冰山一角网络安全吗
excel链接数据库怎么刷新
2019惠州网络安全周活动
小学五年网络安全班会
服务器cpu占用过高的危害
网络安全展深圳
云服务器备案
玉溪市网络安全和信息化工作会
成都软件开发培训哪个学校好
有关网络安全诗歌
辽宁中国数据库技术大会
数据库成品