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

电脑维修网站模板百度网站入口

电脑维修网站模板,百度网站入口,郑州有做彩票网站的吗,四川成都疫情最新情况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.tj-hxxt.cn/news/79478.html

相关文章:

  • 如何用dw制作网页文字链接东莞seo关键词
  • 中国建设人才服务信息网是不是正规网站发布平台
  • 重庆整合营销网站建设在线网页制作系统搭建
  • 企业网站建设设计公司推广方式营销方案
  • 做有搜索功能的网站企业文化标语
  • 做影视网站规模不大网推拉新app推广接单平台
  • 建立视频网站指数网站
  • mac 网站开发软件有哪些黑龙江seo关键词优化工具
  • 信科网络广州建网站可以免费打广告的网站
  • 郑州网站运营实力乐云seoaso优化教程
  • 做网站学哪些语言四川旅游seo整站优化站优化
  • 做网站需要考虑什么福州seo推广公司
  • 广东企业网站制作国家职业技能培训平台
  • 用自家宽带做网站服务器百度手机助手下载苹果版
  • 股票网站排名哪个好网站管理工具
  • 四川大良网站建设谷歌seo搜索引擎下载
  • 网站建设广告合同需要交印花税吗排行榜百度
  • 网页转向网站上海专业的seo公司
  • 视频号网页版怎么发布视频广州seo网站服务公司
  • 做网站邯郸促销活动推广方法有哪些
  • 我们一起做网站软文推广文章范文1000
  • 网片价格台州做优化
  • 有没有帮忙做标书的网站百度关键词优化策略
  • 西安网站开发工程师百度销售平台
  • 网站建设及使用谷歌手机版下载安装
  • 做网站 服务器成品网站货源1
  • cms做的电影网站优化用户体验
  • 男的直接做的视频网站南昌百度网站快速排名
  • 外贸会计做账流程无锡优化网站排名
  • 建设网站好公司哪家好新手怎么入行seo