2016 - 2024

感恩一路有你

c语言四种基本数据类型 c 拷贝构造函数在什么情况下会被调用?

浏览量:1458 时间:2021-03-13 06:53:43 作者:admin

c 拷贝构造函数在什么情况下会被调用?

存在以下情况:

class MyClass

{

MyClass(){}

MyClass(const MyClass&){}

]//1。您的自定义类是通过值传递给函数的

void myfunc(MyClass MyClass)//调用此函数将调用复制构造函数

//2。要通过现有类的对象创建另一个对象

MyClass myclass1

MyClass Myclass2(myclass1)//此处调用复制构造函数

//3。当您使用容器时(如vector

vector

MyClass MyClass

v.pushBack(MyClass)//此处调用复制构造函数

下列情况中,哪一种情况不会调用拷贝构造函数?

复制构造函数只能在以下三种情况下调用:

1)作为函数参数的对象通过值传递传递到函数体中;

2)作为函数返回值的对象通过值传递从函数返回;

3)对象用于初始化另一个对象(通常称为赋值初始化)。

构造函数什么时候被调用,复制构造函数是么时候被调用?

方法仍有问题。构造函数包括复制构造函数。在创建对象时调用构造函数。关键词:创建时,a是形式。指针类型仅在新建时调用复制构造函数。它也是构造器。当用一个对象作为参数创建另一个对象时,或者赋值(同样关注于创建),例如a(b)a b a=b,以下不是对复制构造函数a,b的调用。默认的(无参数)构造称为a=b赋值

有两种情况,假设类名是ctest,构造函数是默认的构造函数

一个是在创建本地对象时,

ctestc//将自动调用构造函数

另一个是在使用new运算符在堆上分配对象时,

ctest*P=newctest//也将调用构造函数

c语言四种基本数据类型 拷贝构造函数在哪几种情况下调用 调用拷贝构造函数的三种情况

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。