gpt4 book ai didi

C++ 为什么这种构造甚至有效?

转载 作者:行者123 更新时间:2023-12-04 03:42:26 25 4
gpt4 key购买 nike

<分区>

我想知道为什么这段代码可以正确编译。由于复制构造函数和赋值运算符被删除,我认为这些机制将不可用。

我认为 main() 中的构造被编译器替换为某种 emplace 构造,该构造有效地由 Object本身......但我无法想象为什么会发生这种情况。

struct Object
{
private:
friend struct ObjectFactory;
Object() {}
Object(const Object& other) = delete;
Object& operator=(const Object&) const = delete;
};

struct ObjectFactory
{
static Object CreateObject() { return Object(); }
};

int main()
{
Object object1 = ObjectFactory::CreateObject();
Object object2 ( ObjectFactory::CreateObject() );
Object object3 { ObjectFactory::CreateObject() };
}

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