C++
1
在这种情况下,使用该类拷贝构造函数,根据返回值来创建该类的新的对象。
class Person { Person(int age) {//构造函数 cout << "param constructor!" << endl; mAge = age; } public: Person(const Person& person) { //拷贝构造函数 mAge = person.mAge; } public: int mAge; }; Person MyFunc() {//返回值为非引用自定义类的函数 Person q(10); return q; }MyFunc()
Person p = MyFunc();
MyFunc()PersonqPersonqpPersonMyFunc()MyFunc()
MyFunc();
PersonPersonq
2
当函数的返回值是自定义类的引用类型时
Person& MyFunc() {//返回值为引用自定义类的函数 Person q(10); return q; }MyFunc()
MyFunc();
PersonMyFunc()
Person p = MyBusiness();
Person
文章来源: C++函数返回值是自定义类型情况