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

定制建站费用3500元

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

成都品牌网站建设

品牌网站建设费用6000元

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

成都商城网站建设

商城网站建设费用8000元

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

成都微信网站建设

手机微信网站建站3000元

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

建站知识

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

C++中赋值函数和拷贝构造函数(举例说明)-创新互联

拷贝构造函数发生在对象还没有创建,需要创建时

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都做网站、纳溪网络推广、微信小程序开发、纳溪网络营销、纳溪企业策划、纳溪品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联建站为所有大学生创业者提供纳溪建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

如:   MyClass obj1(1);

          MyClassobj3 = obj1;

赋值操作符重载仅发生在对象已经执行过构造函数,即已经创建的情况下

如:

               MyClass obj1(1);

                MyClass obj3;

               obj3 = obj1;

具体代码如下:

class MyClass

{

public:

               MyClass( int i = 0)

               {

                               cout << i;

               }

               MyClass( const MyClass &x)

               {

                               cout << 2;

               }

                MyClass &operator=(const MyClass & x)

               {

                               cout << 3;

                                return *this ;

               }

               ~MyClass()

               {

                               cout << 4;

               }

};

int main()

{

                MyClass obj1(1);

                MyClass  obj2(2);

                MyClass obj3;

               obj3 = obj1;

                return 0;

}

输出:1203444

先创建对象obj1,调用构造函数并初始化为1,输出1

再创建对象obj2,调用构造函数并初始化为2,输出2

创建对象obj3,调用构造函数,使用默认值为0,输出0

obj1赋值给obj3时,调用赋值函数,输出3

再依次析构,析构的顺序和调用构造的顺序相反

先析构obj3,在析构obj2,最后析构obj1

class MyClass

{

public:

               MyClass( int i = 0)

               {

                               cout << i;

               }

               MyClass( const MyClass &x)

               {

                               cout << 2;

               }

                MyClass &operator=(const MyClass & x)

               {

                               cout << 3;

                                return *this ;

               }

               ~MyClass()

               {

                               cout << 4;

               }

};

int main()

{

                MyClass obj1(1);

                MyClass   obj2(2);

                MyClass obj3 = obj1;

                return 0;

}

输出:122444

依次创建对象obj1,obj2,调用两次构造,分别输出初始化的值1,2

MyClass obj3 = obj1;由于赋值的时候obj3还没有创建,所以会调用拷贝构造函数,输出2

再依次析构三个对象

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


分享题目:C++中赋值函数和拷贝构造函数(举例说明)-创新互联
当前路径:http://bjjierui.cn/article/deijog.html

其他资讯