【问题标题】:Modify class variable via pointer to reference通过指向引用的指针修改类变量
【发布时间】:2014-11-04 20:21:47
【问题描述】:

我有这个类声明,应该在我的Time 类中设置hourminutesecond 变量:

class Time
{
public:
     int hour; //0-23
     int minute; //0-59
     int second; //0-59
};

现在,接下来的代码应该适用于该类定义:

Time clock;
Time *clockPtr = &clock;

clock.hour=8;
clock.minute=12;
*clockPtr.second=0;

这行得通吗?我认为因为指针指向地址&clock 的值,所以它应该可以工作。如果我错了,请纠正我。

【问题讨论】:

标签: c++ function class


【解决方案1】:

如 cmets 中所述,您需要注意 *. 解引用运算符的 precedence。只需更改该行

 *clockPtr.second=0;

 (*clockPtr).second=0;

或正如@Thomas Matthews 指出的那样

 clockPtr->second=0;

LIVE DEMO

【讨论】:

  • 使用-> 运算符可以消除优先级问题:clockPtr->second = 0;
猜你喜欢
  • 1970-01-01
  • 2011-06-23
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
  • 2013-08-09
  • 1970-01-01
  • 2020-04-16
相关资源
最近更新 更多