有人可以向我解释为什么以下给我一个错误,以及如何解决。
编译错误是:
error: expected primary-expression before ‘.’ token
简化的类和方法:
class test{
private:
int data;
public:
test() : data(1){}
test(const test& copy):data(copy.data){} //copy constructor
int getData(){
return data;
}
};
此方法不会像这样编译:
int getDataFromClass(const test& src){
return test.getData();
}
但它确实喜欢这样
int getDataFromClass(const test& src){
test t = test(src);
return t.getData();
}
第二种方法违背了通过引用传递数据的目的,因此是不可取的。
我希望能够通过引用传递一个类,作为一个常量,并且能够使用一些 getter 方法而不必创建本地副本。