gpt4 book ai didi

C++浅/深拷贝?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:00:50 27 4
gpt4 key购买 nike

我有这个功能

int getrelation(string name, RELATION& output){

bool found=0;
int index=0;
for(int i=0;i<a_attributes.size();i++){
if(name==a_attributes[i].str_name){
found=1;
index=i;
}
}
if(!found){
printf("relation not found");
return 1;
}
output=a_attributes[index];

return 0;
}

RELATION 是一个类a_attributes 是一个关系 vector 。

它应该返回对关系对象的引用。调用 getrelation() 后,如果我更改输出值,那么 a_attributes[index] 的值也应该更改,因为这是一个浅拷贝,对吧?

最佳答案

这实际上取决于您的赋值运算符,此处未列出。

线

output=a_attributes[索引];

将使用赋值运算符来设置输出。如果该赋值运算符进行深拷贝,那么您将获得深拷贝。

关于C++浅/深拷贝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7533686/

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