gpt4 book ai didi

c++ - 使用 move 构造函数

转载 作者:行者123 更新时间:2023-11-28 06:30:09 25 4
gpt4 key购买 nike

<分区>

我写了下面的类(class),我对此有疑问。函数 sayHello() 返回一个对象,该对象将在该行之后被销毁。但是,它不使用 move 构造函数。不是右值引用吗?为什么它不使用 move 构造函数?

class FString {
private:
char *ptr;
public:
FString() : ptr(nullptr) {}

FString(const char *str) {
cout << "Called: FString(const char *str)\n";
//...
}

~FString() {
cout << "Called: ~FString()\n";
//...
}

FString(FString &&s) {
cout << "Called: FString(FString &&s)\n";
//...
}
};


FString sayHello() {
FString s("Hello World!");
return s;
}

int main() {
FString s("Hello World!");
FString s2(sayHello());
return 0;
}

输出:

Called: FString(const char *str)
Called: FString(const char *str)
Called: ~FString()
Called: ~FString()

谢谢。

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