C++にてポリモーフィズムで派生クラスのメンバ変数にアクセスしたいのですが,どのように書けばそうできるのかわかりません。
ご教授お願いします。
詳細
C++
1struct Base { 2 int a; 3}; 4 5struct A : public Base { 6 int b; 7}; 8 9struct B : public Base { 10 int c; 11};
などのコードでstd::vector<Base*>
などを使いBaseから派生した複数,多種類のstructをまとめ管理したいです。
しかし, メンバ変数にアクセスできないという問題が発生しました。
この問題を解決するようなコード,またはこう設計すべしというものがあったら教えてください。
ソースコード
C++
1#include <iostream> 2 3struct Base { 4 int a; 5}; 6 7struct A : public Base { 8 int a; 9 int b; 10}; 11 12int main() { 13 Base *ptr; 14 A hoge; 15 hoge.a = 2; 16 hoge.b = 3; 17 ptr = &hoge; 18 19 std::cout << "ptr->a:" << ptr->a << std::endl; // 2が出ない 20 std::cout << "ptr->b:" << ptr->b << std::endl; // Error 21 return 0; 22}
上記のコードでptr->a
, ptr->b
を表示できるようにしたい
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。