Ram*_*h-X 11 c++ struct return function
#include <iostream>
struct person_t{
int age;
};
person_t get_person1(){
person_t person;
person.age = 10;
return person;
}
person_t * get_person2(){
person_t *person = new person_t;
person->age = 20;
return person;
}
int main(){
person_t person1 = get_person1();
person_t *person2 = get_person2();
std::cout << person1.age << std::endl;
std::cout << person2->age << std::endl;
delete person2;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想知道从函数返回结构的最安全的方法是什么.
正如在这里和这里的问题的答案中所说,当你创建一个对象时get_person1(),该对象将在它超出范围之后被销毁.
但是当我搜索"如何从函数c ++返回一个结构"时,它建议我使用方法一(带有get_person1())(这里的例子).但我认为该方法会在调用函数后销毁对象,我认为方法2是最安全的.
我错了吗?或者关于这个话题的任何意见..?
谢谢!!
使用按值返回有三个原因:
| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |