クラスの作成を試みています。私は、コンストラクタの後{
を入れると、vs2015
は私にエラー指定されたクラス、構造体、または共用体にデフォルトのコンストラクタはありません
を示しんデフォルトコンストラクタは、指定されたクラス、構造体、または共用体のために利用可能ではありません。
NumberExpression.h:
class NumberExpression : Expression { private: Token m_token; public: NumberExpression(Token tok); double evaluate(); };
NumberExpression.cpp:
NumberExpression::NumberExpression(Token tok) { m_token = tok; }
Token.h:
は、コードスニペットをTheresの
class Token {
public:
enum TYPE { NUM, ADD, SUB, MUL, DIV, EoF };
private:
char* m_text;
TYPE m_type;
public:
Token(TYPE type, char* text);
TYPE getType() const { return m_type; }
char* getText() const { return m_text; }
};
私は空のコンストラクタを作成できますが、なぜこのエラーが発生するのでしょうか?
をenumのデフォルト初期化値? – Davar
@Davar OPは、 'enum {INVALID = -1、その他、};のような他のものの前に別のenum値を追加することができます。 –
それは本当ですが、enumがデフォルトで構成可能で、その動作がどのようなものか、という質問にもっと興味がありました。実際には良い質問です@Dava、 – Davar