以下のコードでは、演算子にint
をオーバーロードしようとしています。私のプログラムでint A= &d
ステートメントをサポートできるように。プリミティブデータ型のオーバーライド
class Data{
public:
int a;
Data(int A): a(A) {}
operator int() {return a;}
};
int operator=(int &lhs, Data* rhs){
lhs = rhs->a;
return lhs;
}
int main(){
Data d(10);
int A = &d;
return 0;
}
しかし、時間のコンパイルエラー与えている:
error: ‘int operator=(int&, Data*)’ must be a nonstatic member function int operator=(int &lhs, Data* rhs){
test1.cpp: In function ‘int main()’:
test1.cpp: error: invalid conversion from ‘Data*’ to ‘int’ [-fpermissive] int A = &d;
私にオペレータをオーバーロードの正しい方法を提案してください。