2017-05-20 2 views
0

以下のコードに示すように、多態性を実装しようとしています。私は型クラス表現の表現のベクトルが欲しいです。これらの式は、Parameterクラス型の右と左のパラメータオブジェクトを持ちます。推測されているように、これは文字列 "a_string"または "an_id"にヒットするまで繰り返される可能性があります。しかし、コンパイラは、まずベクトルの "式"の型を知っていません。助けが必要です。ありがとうございました。オブジェクトを使用して多態性を実装しようとしています

#ifndef PARAMETER_H 
#define PARAMETER_H 
#include <string> 
#include <vector> 

using namespace std; 

class Parameter 
{ 

private: 
    string a_string; 
    string an_id; 
    vector<Expression> expressions; 



public: 
    Parameter(bool expr_stringID); 

}; 

class Expression : public Parameter 
{ 
private: 
    Parameter left_parameter; 
    Parameter right_parameter; 
    char op; 

public: 

}; 

#endif 
+0

あなたの 'class Parameter'行のすぐ上に' class Expression; 'を置くことができるはずです –

+0

@TheDarkはい、前方宣言が最小です。詐欺についてはあまり確かではありません。 –

答えて

2

PoymorphismいずれかStatic Polymorphismを実現するvirtual機能(少なくともvirtualデストラクタ)、又はCRTPを必要とします。

あなたの例には、これらのどちらも指定しません。

関連する問題