gpt4 book ai didi

c++ - 2个默认复制构造函数: is it possible?

转载 作者:太空狗 更新时间:2023-10-29 20:09:45 25 4
gpt4 key购买 nike

下面的程序是病式的吗?

struct Foo
{
Foo(Foo&) = default;

Foo(const Foo&) = default;
};

int main()
{
}

成功了compiles with clang++ 3.8.0 and g++ 6.3.0 (编译器标志是 -std=c++11 -Wall -Wextra -Werror -pedantic-errors)。

最佳答案

为什么这应该是病式的?您定义了两个复制构造函数,一个需要一个非常量参数,另一个可以使用一个常量参数。然后你告诉编译器它应该为这两个构造函数使用它的默认实现。除非编译器有理由消除默认的复制构造函数,否则您也可以删除这两行并获得相同的结果。此外,我认为第一个版本是多余的,因为默认实现应该无论如何都可以使用 const 参数。仍然定义两者是合法的,因为您可能想在这两种情况下做一些不同的事情。

关于c++ - 2个默认复制构造函数: is it possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43317841/

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