gpt4 book ai didi

c++ - 为什么复制构造函数调用其他类的默认构造函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:17:31 27 4
gpt4 key购买 nike

我想知道为什么会出现这样的错误。

no matching function for call to 'Foo::Foo()'

在复制构造函数的代码中?假设 Foo 只是一个具有普通字段的对象(没有动态分配的内存等),并且它定义的唯一构造函数是一个接受一个参数的构造函数。

虽然我什至不知道需要考虑构造函数。如果代码是这样的

bar = thing.bar; //

而且bar是Foo类型的,按照上面的规范,不就是生成一个浅拷贝就完事了吗?为什么需要调用默认构造函数?

最佳答案

如果您没有定义构造函数,编译器将生成一个默认构造函数,但是如果您确实定义了一个构造函数(如复制构造函数),编译器不会 em> 生成默认构造函数,因此您也需要定义该构造函数。

关于c++ - 为什么复制构造函数调用其他类的默认构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1934961/

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