求问, C++ 中如何提供接口让用户变量私有成员变量 vector
用 C++ 定义了一个类,类内部定义了一个私有成员变量 vector,如何提供接口让用户能够访问这个变量这个 vector
用 C++ 定义了一个类,类内部定义了一个私有成员变量 vector,如何提供接口让用户能够访问这个变量这个 vector
返回一个 const 引用。
class A{
public:
const vector<int>& get_v(){
}
}
#include <iostream>
#include<vector>
class A {
public:
A():v(2,0) {
std::cout << v.data() << ” “;
};
const std::vector<int>& get_v() {
return v;
};
private:
std::vector<int> v;
};
int main()
{
A a;
auto v0 = a.get_v(); //不共享数据
auto& v0_r = a.get_v(); //共享数据
const std::vector<int>& v1 = a.get_v(); //共享数据
std::vector<int> v2 = a.get_v(); //不共享数据
std::cout <<v0.data()<<” “<<v0_r.data()<<” “<< v1.data() << ” ” << v2.data() << std::endl;
};
1. auto 关键字不考虑引用,默认是没有引用的,所以相当于用一个引用来构造一个新的 v0,所以没有共享数据,有复制。
2. a 与 v0_r, v1 是共享数据的,v0 和 v2 是新的变量,发生了数据复制。