Variable という名前の基本クラスがあります。
class Variable
{
protected:
std::string name;
public:
Variable(std::string name="");
Variable (const Variable& other);
virtual ~Variable(){};
};
Int、Bool、String などのいくつかの派生クラスがあります。例:
class Bool: public Variable{
private:
bool value;
public:
Bool(std::string name, bool num);
~Bool();
Bool (const Bool& other);
bool getVal();
各派生クラスには、異なる型 (bool、int など) を返す getVal() という名前のメソッドがあります。Variable クラスのポリモーフィック動作を許可したい。
私は試しました:void getVal();
これは間違っているように見え、コンパイラはエラーを示しました:shadows Variable::getVal()
これは悪いように聞こえます。使おうと思っtemplate <typename T> T getVal();
たけどダメだった。
助言がありますか?そのためにキャストを使用する必要がありますか?
どうもありがとう...