gpt4 book ai didi

c++ - 函数返回指向类的指针时是否调用复制构造函数?

转载 作者:行者123 更新时间:2023-11-30 00:39:40 25 4
gpt4 key购买 nike

这个问题可能很愚蠢,但我想知道,当函数返回指向对象的指针时是否调用了复制构造函数?另外,请考虑以下内容:

A* a1 = new A(); 
A* a = a1.GetPointer();

A* GetPoineter()
{

.....
return new A();
}

也是

A* a = a1.GetPointer(); 

调用复制构造函数?

另外,如果我删除a,它会不会也删除a1指向的地址?

最佳答案

不,它不会调用复制构造函数,因为您返回的是对象的地址,而不是对象本身。

delete a;只会删除在GetPoineter函数中分配的对象。 a1 未被修改,因为它指向一个完全不同的对象。

关于c++ - 函数返回指向类的指针时是否调用复制构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8199986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com