-1

トークンの初期化に関する Bjarne C++ の本を読みました。

コード:

class Token {
public:
    char kind;        // what kind of token
    double value;     // for numbers: a value
    Token(char ch)    // make a Token from a char
        :kind(ch), value(0) { }
    Token(char ch, double val)     // make a Token from a char and a double
        :kind(ch), value(val) { }
};

なぜ 'for char ch' で Token を 2 回作成しなければならないのか

  • トークン(char ch)と
  • トークン (char ch、double val)

ありがとう。

4

2 に答える 2

0

著者はおそらく、コンストラクターのオーバーロードの概念を同時に示すためにそれを行いました。代わりに、次を使用できます。

Token(char ch, double val = 0) : kind(ch), value(val) {}

このように、valのデフォルト値は0であり、他の値を渡したい場合は、ゼロがその値で上書きされます。

于 2013-03-06T11:05:29.993 に答える