クラスがあるとしましょう
Class rofl {
int a;
float b;
rofl::rofl(int a, float b) {
this->a = a; this->b = b;
}
}
することは可能ですか
rofl* sup = new rofl(5, 2.0f);
float hello = sup;
変数 hello が sup.b の値を取得するようにするには?
クラスがあるとしましょう
Class rofl {
int a;
float b;
rofl::rofl(int a, float b) {
this->a = a; this->b = b;
}
}
することは可能ですか
rofl* sup = new rofl(5, 2.0f);
float hello = sup;
変数 hello が sup.b の値を取得するようにするには?
はい、型変換演算子をオーバーロードできます:
class Rofl {
public:
operator float() const { return b; }
...
};
デモについては、 http://ideone.com/Y7UwVを参照してください。
ただし、Scott Meyers の「より効果的な C++ 」の項目 5 の「ユーザー定義の変換操作に注意する」を参照してください。複雑な型との間の暗黙的な変換を許可すると、あらゆる種類の微妙なタイプミスのバグにつながることがよくあります。
いいえ、あなたが言った場合、これは不可能です。あなたのコードでは、はでsup
はなく、rofl
であり、 to変換rofl*
を作成することは許可されていません。さらに、あなたの質問は形式が正しくありません。何も言及していません。rofl*
float
sup.b
そうは言っても、おそらくインスタンスを動的に割り当てる必要はありません。その場合、他の答えは正しいです。