繁体   English   中英

为什么不能在此成员函数中设置此成员变量?

[英]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值6breakoutACK ,其是非可印刷的。

最初, 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM