メンバ変数へのポインタを多態的に使用しようとしています。メンバ変数へのポリモーフィックポインタ
この作品:
struct Foo
{
int member0;
int member1;
int* getMember(int i)
{
static int Foo::* table[2] = { &Foo::member0, &Foo::member1 };
return &(this->*table[i]);
}
};
メンバーが同じタイプ(BaseClassの)ではないので、これはない:
struct Foo
{
SubClassA member0;
SubClassB member1;
BaseClass* getMember(int i)
{
static BaseClass Foo::* table[2] = { &Foo::member0, &Foo::member1 };
return &(this->*table[i]);
}
};
グラム++によって報告されたエラーがある:
[...] invalid conversion from 'SubClassA Foo::*' to 'BaseClass Foo::*'
[...] invalid conversion from 'SubClassB Foo::*' to 'BaseClass Foo::*'
この作業を行う方法はありますか?つまり、基本クラスへのメンバーポインタを "アップキャスト"する方法はありますか?
質問の形式は本当に悪いです。あなたのコードで何が問題になっていますか?エラーはありますか?あなたがしたいこと、そしてあなたが直面している問題を投稿してください。 – Nawaz
@Nawazええ、私はほとんどこの質問に答えようとしましたが、彼が何をしたいのか、何が間違っていたのかは分かりませんでした。 –
私はエラーメッセージといくつかの説明を追加しました。 – hmn