gpt4 book ai didi

c++ - 默认 d'tor,复制 c'tor,operator=

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:23 26 4
gpt4 key购买 nike

假设我有一些 A 类:

标题

class A{
int x;
int value() {return x};
};

主要

A a;
cout << a.value();

我的问题是:我的编译器是否会为我生成d'tor copy c'tor and operator=(因为它实际上不需要它)

已编辑

它会为我写 d'tor 吗,因为它似乎没用,如果我错了,你能举个例子吗

最佳答案

原则上,对于“已使用”的 ctor 和 dtor 是的。 operator= 不行:默认函数只有在使用时才会生成,这很重要,因为对于某些类来说,默认的operator=“不会工作”,所以它是不可用。

实际上,这个类的自动生成的 ctor 和 dtor 什么都不做。一个足以用于实际工作的编译器将确保它们的理论存在不会导致生成任何代码[*]。

[*] 我想。在二进制文件中有一堆什么都不做并返回的函数不一定是那么糟糕。如果编译器无法删除对它们的调用,那可能会很糟糕 - 不是针对您的程序,而是针对具有数百万此类对象的更大程序...

关于c++ - 默认 d'tor,复制 c'tor,operator=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3877368/

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