ページ 11

抽象クラスの使い方について

Posted: 2016年7月16日(土) 14:22
by 仁科
お世話になります。
今回、初めて0から物を作っているC++初心者、もといプログラミング初心者です。
抽象クラスの使い方が分からず、困惑しております。

以下、疑似コードです。
抽象クラス
 メソッドA:戻り値は「抽象クラス*(自分の型のポインタ)」

子クラスA(抽象クラスを継承)
 メソッドA:ファイルから文字列を取得して分割後、メンバ変数A1とメンバ変数A2に入れる。戻り値は「this」。

子クラスB(抽象クラスを継承)
 メソッドA:ファイルから文字列を取得して分割後、メンバ変数B1に入れる。戻り値は「this」。

main
 抽象クラス* BaseClass;
 Vextor<抽象クラス*> BaseClassArrayList;
 BaseClassArrayList.pushback(BaseClass->メソッドA); // 子クラスのポインタが帰ってくる?

上記のようにすると、visual C++ 2015にて、「コンパイラ エラー C2440」が、発生します。

最終的には、子クラスのインスタンスから、メンバ変数を取得して、
処理に使いたいのですが、方法自体、間違っているのでしょうか?
ご教授のほど、よろしくお願い致します。

Re: 抽象クラスの使い方について

Posted: 2016年7月16日(土) 15:15
by 仁科
すいません。質問を訂正します。

コンパイラ エラーの原因は、実ソースの記載ミスでした。
修正したところ、エラーは発生しなくなりました。

ですので、質問内容を、「子クラスのデータを取得する方法」に変更させて下さい。
よろしくお願い致します。

Re: 抽象クラスの使い方について

Posted: 2016年7月16日(土) 18:48
by hide
質問に擬似コードはやめたほうがいいかと思います。
質問者さんがこうだと思っていることと、実際の動かしているコードの間で別のことをやってしまう可能性があります。
実コード出せない理由とかあるのでしょうか?