c++初始化令牌

C++ initializing token

本文关键字:令牌 初始化 c++      更新时间:2023-10-16

我读了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) { }
};

为什么必须让Token两次'for char ch'

  • 令牌(char)和
  • Token (char, double val)

谢谢。

你没有。您可以使用以下命令:

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

基本上,这个(和Bjarne的)代码所做的是允许您从以下两种方式构建Token:

  • a char;或
  • a char和a double .

作者这样做可能是为了同时展示构造函数重载的概念,您可以使用下面的

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

这样,val的默认值是0,如果你想传递任何其他值,0将被该值覆盖