私自身の構造体型X
が与えられているので、の暗黙的な変換を可能にする暗黙のキャスト演算子を定義することはできますか。たとえばint*
です。参照間のキャストは簡単ですが、ポインタのための操作方法はわかりません。このようなもの:ポインタ間のキャスト演算子
struct X {
int theContent;
operator int&(){ return theContent; }
operator const int&() const { return theContent; }
}
int main(){
X x;
X* x2=&x;
// this should work, but it doesn't
int* i=x2;
}
私は似たような質問は既に回答していると思います[ここ](http://stackoverflow.com/questions/6802978/implement-conversion-operator-for-pointer)。ポインタはユーザ定義のクラス型ではないので、Answerはおそらく "no"なので、キャスト演算子を追加することはできません。 – yeputons
あなたは 'X *'を 'int *'にキャストするための演算子を持っていませんが、 'X'から' int& 'にしかありません。あなたは明示的に 'int * i =&x2->演算子intを使って演算子を呼び出すことができます&();' –
@SimonKraemer:まあ、私は暗黙の*キャストと呼んでいません。 – gexicide