c++初始化令牌
C++ initializing token
我读了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
和adouble
.
作者这样做可能是为了同时展示构造函数重载的概念,您可以使用下面的
Token(char ch, double val = 0) : kind(ch), value(val) {}
这样,val的默认值是0,如果你想传递任何其他值,0将被该值覆盖
相关文章:
- 初始化一副牌C++
- 错误:"->"令牌之前的预期初始值设定项
- 令牌之前的预期初始值设定项'*'
- '.'令牌 c++ 之前的预期初始值设定项
- C++ 在 { 令牌之前无效使用不完整的类型或预期的初始值设定项
- 链表:错误:令牌之前的预期初始值设定项'<'
- C 补充错误:“ =”令牌之前的预期初始化器
- 令牌调用之前'...'预期的主表达式 模板化类的模板化方法
- 在令牌之前继承'<'类的预期初始值设定项
- * 令牌之前的预期初始值设定项
- C++模板 - 错误:令牌之前的预期初始值设定项'<'
- 错误:': '令牌之前的预期初始值设定项,gcc 编译器
- constexpr(gcc) 错误 - 错误:在令牌之前不允许使用大括号括'{'初始值设定项
- 为什么会收到此错误?"<"令牌之前的预期初始值设定项
- C++ 模板类编译错误:令牌之前'<'预期的初始化声明器
- 错误:':'令牌之前期望的初始化项
- c++初始化令牌
- 错误:令牌之前的预期初始值设定项'.'
- 令牌化时强制预处理器评估
- 错误:"<"令牌之前的预期初始值设定项 |全球