次のエラーが発生する理由と修正方法を誰かに説明してもらえますか。
コンパイルエラーは次のとおりです。
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();
}
2 番目の方法は、参照によってデータを渡す目的に反するため、望ましくありません。
クラスを参照によって const として渡し、ローカル コピーを作成せずにいくつかのゲッター メソッドを使用できるようにしたいと考えています。