当前位置: 首页 > news >正文

哈尔滨网站建设 seo罗湖区网站建设

哈尔滨网站建设 seo,罗湖区网站建设,那个网站推作者,站长查询1、初始化列表 作用&#xff1a;C提供了初始化列表语法&#xff0c;用来初始化属性。 语法&#xff1a; 构造函数&#xff08;&#xff09;&#xff1a;属性1&#xff08;值1&#xff09;&#xff0c;属性2&#xff08;值2&#xff09;...{}示例&#xff1a; #include<i…

1、初始化列表

作用:C++提供了初始化列表语法,用来初始化属性。

语法:

构造函数():属性1(值1),属性2(值2)...{}

示例:

#include<iostream>
using namespace std;
class   person
{
public://传统的赋值person(int a, int b, int c){m_a = a;m_b = b;m_c = c;}int m_a;int m_b;int m_c;
};
int main()
{person p(1, 2, 3);cout << "m_a=" << p.m_a << endl;cout << "m_b=" << p.m_b << endl;cout << "m_c=" << p.m_c << endl;return 0;
}

结果:

代码:

#include<iostream>
using namespace std;
class   person
{
public://初始化列表初始化属性person():m_a(1),m_b(2),m_c(3){}int m_a;int m_b;int m_c;
};
int main()
{person p;cout << "m_a=" << p.m_a << endl;cout << "m_b=" << p.m_b << endl;cout << "m_c=" << p.m_c << endl;return 0;
}

结果:

由于这种代码的固定性,一般这样使用初始化列表

代码:

#include<iostream>
using namespace std;
class   person
{
public://初始化列表初始化属性,意思是:m_a=a,m_b=b,m_c=cperson(int a,int b,int c):m_a(a),m_b(b),m_c(c){}int m_a;int m_b;int m_c;
};
int main()
{person p(5,4,1);cout << "m_a=" << p.m_a << endl;cout << "m_b=" << p.m_b << endl;cout << "m_c=" << p.m_c << endl;return 0;
}

结果:

2、拷贝构造函数调用时机

C++中拷贝构造函数调用时机通常有三种情况:

(1)使用一个已经创建完毕当代对象来初始化一个新对象。

(2)值传递的方式给函数参数传值。

(3)以值方式返回局部对象。

示例://1、使用一个已经创建完毕的对象来初始化一个新对象

代码:

#include<iostream>
using  namespace std;
class person
{
public:person(){cout << "person默认构造函数调用" << endl;}~person(){cout << "person析构函数调用" << endl;}person(int age){m_age = age;cout << "person有参构造函数调用" << endl;}person(const person& p){m_age = p.m_age;cout << "person拷贝构造函数调用" << endl;}int m_age;
};
//1、使用一个已经创建完毕的对象来初始化一个新对象
void  test01()
{person p1(20);person p2(p1);cout << "p2的年龄为:" << p2.m_age << endl;
}
int main()
{test01();return 0;
}

结果:

示例://2、值传递的方式给函数参数传值

#include<iostream>
using  namespace std;
class person
{
public:person(){cout << "person默认构造函数调用" << endl;}~person(){cout << "person析构函数调用" << endl;}person(int age){m_age = age;cout << "person有参构造函数调用" << endl;}person(const person& p){m_age = p.m_age;cout << "person拷贝构造函数调用" << endl;}int m_age;
};
//2、值传递的方式给函数参数传值void dowork(person p)
{}
void test02()
{person p;dowork(p);
}
int main()
{test02();return 0;
}

结果:

示例://值方式返回局部对象

代码:

#include<iostream>
using  namespace std;
class person
{
public:person(){cout << "person默认构造函数调用" << endl;}~person(){cout << "person析构函数调用" << endl;}person(int age){m_age = age;cout << "person有参构造函数调用" << endl;}person(const person& p){m_age = p.m_age;cout << "person拷贝构造函数调用" << endl;}int m_age;
};
//值方式返回局部对象
person  dowork()
{person p1;return p1;
}
void test03()
{person p2= dowork();}
int main()
{test03();return 0;
}

结果:

3、构造函数调用规则

默认情况下,C++编译器至少给一个类添加3个函数:

(1)默认构造函数(无参,函数体为空)

(2)默认析构函数(无参,函数体为空)

(3)默认拷贝构造函数,对属性进行值拷贝。

构造函数调用规则如下:

(1)如果用户定义有参构造函数,C++不再提供默认无参构造函数,但是会提供默认拷贝构造函数。

(2)如果用户定义拷贝构造函数,C++不再提供其他构造函数。

http://www.yayakq.cn/news/762475/

相关文章:

  • 使用iframe做网站wordpress可视化主题制作
  • 网站布局模版南京产品网站建设收费
  • 网站建设的毕业设计报告百度pc网页版登录入口
  • 选择大连网站建设百度有什么办法刷排名
  • 网站开发架构师手机网站素材
  • 福州网站设计服务怎么做招投标网站
  • 介绍几个能进去的a站实名认证
  • 电子商务网站软件平台公司徽标设计图片
  • 学做网站的软件wordpress更改页面设置
  • 广州比较好的网站建设企业弹幕播放器 wordpress
  • wordpress做视频播放网站网站开发数据如何转化
  • 专业营销型网站建设公司做网站从哪里找货源
  • 什么网站服务器好重庆永川建设银行网站
  • 免费设计商标的网站收费企业邮箱哪家好
  • world做网站怎么做连接网站中英文要怎么做
  • 镇江市建设工程质量监督局网站WordPress写文章本地上传
  • 广东省网站建设公司排名网络服务营业部
  • 广州城市建设网站久久建筑网站下载
  • 淮北哪些企业做网站网站服务器信息
  • 成都网站制作报价wordpress客户端连接不上
  • 优秀网站配色景区网站建设费用
  • 网站建设及规划wordpress自动链接到图片
  • 企业建设网站好处如何做好网络维护工作
  • 网站设计制作费用多少电商网站用什么做的
  • 福建建设注册管理中心网站沧州网络推广管理公司
  • 做分析仪器推广的网站怎样只做自己的网站
  • 大型彩灯制作公司宁波 seo排名公司
  • 3d效果图多少钱一张网站推广与优化怎么做
  • 网站开发 网页制作网站是否正常
  • 深圳住房和建设局网站 申请文山建设局网站