gpt4 book ai didi

C++ - 通过复制行为返回

转载 作者:行者123 更新时间:2023-11-28 06:16:56 26 4
gpt4 key购买 nike

<分区>

我研究下面这个小例子只是为了更好地理解在 C++ 中通过复制传递值的行为。

#include <iostream>
using namespace std;

class A{
public:
A(){
cout << "A()" << endl;
}
A(const A& a){
cout << "A(const A& a)" << endl;
}
A(A&& a){
cout << "A(A&& a)" << endl;
}
};

A get_A(A a){
cout << "beginning get_A()" << endl;
A a2;
cout << "end get_A()" << endl;
return a2;
}

int main() {
cout << "beginning main" << endl;
A a1;
A a2 = get_A(a1);
cout << "end main" << endl;
return 0;
}

Output:

beginning main
A()
A(const A& a)
beginning get_A()
A()
end get_A()
end main

为什么在打印的 end get_A() 之后没有 A(const A& a),因为我是通过拷贝返回的?

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