gpt4 book ai didi

c++ - 返回对私有(private)成员的引用

转载 作者:太空宇宙 更新时间:2023-11-04 15:59:17 26 4
gpt4 key购买 nike

我有课

class SomeClass {
public:
using DType = std::vector<int>;

DType& data1() { // this should return a reference to data
return data;
}

DType data2() { // this should return a copy to data
return data;
}

private:
DType data;
}

我的理解是,如果我这样做

SomeClass temp;
auto d1 = temp.data1(); // this should NOT do any copying just create a new ref
auto d2 = temp.data2(); // this supposed to copy the data?

我正在看书,上面写着我什么时候看

auto d1 = temp.data1()

它会将整个数据复制一份并赋值给d1...这本书有没有错误?

*************** 从阅读其他人的回答更新 *****************

似乎“auto”在这里做了一些有趣的事情。我想如果我这样做:

std::vector<int>& d1 = temp.data1() . // this is not copying

但如果我这样做:

std::vector<int> d1 = temp.data1() . // this is copying

最佳答案

你的理解有误。 auto d1 = temp.data1(); 将制作一个拷贝。如果您需要引用,请使用 auto& d1 = temp.data1();

关于c++ - 返回对私有(private)成员的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48272643/

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