[英]Why can't I use the member function to get a member variable when I use <set> iterator?
[英]Why can't I set this member variable in this member function?
因此,在此功能中,不是将Breakout设置为6。当它打印时,我会收到“ breakout”,后面没有数字。
void tokens::driver()
{
//comment(getInput());
// std::cout<< "driver working"<<std::endl;
breakout=6;
std::cout<< "breakout"<<breakout<< std::endl;
integerConstant(breakout);
//symbol(getInput());
std::cout<< "breakout"<<breakout<< std::endl;
}
我的h文件是这样的:
class tokens
{
public:
void driver();
char breakout;
private:
char getInput();
char integerConstant(char input);
char symbol(char input);
char whatWord(char input);
char comment(char input);
bool symbolMap(char input);
bool keywordMap(std::string input);
};
breakout=6;
上面的语句受让人的ASCII值6
到breakout
是ACK ,其是非可印刷的。
最初, breakout
设置为6,作为字符编码值,它是不可打印的ASCII字符。
将char
值6传递给cout
一种可能的效果是什么都不显示。 将其作为整数传递的一个不错的小技巧是使用前缀+
运算符,如下所示: +breakout
。 然后,您应该看到值6。
在integerConstant
,单个参数按值传递。 这将复制实际参数。 对副本所做的更改不会反映在实际参数中。
如果您打算将breakout
设为字符 “ 6”,则应将其指定为用单引号括起来,如下所示:
breakout = '6';
字符“ 6”的ASCII值为48 + 6 = 54,因此,除了在某些旧的IBM大型机(使用EBCDIC而不是ASCII)上,上述分配等效于
breakout = 54;
但是写'6'
比写54
更清楚。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.