解决"表达式必须具有指向类类型的指针"错误

hex*_*ode 3 c++ pointers operator-precedence

class testClass { public: int B, C; };

testClass u;
testClass * k = &u;
testClass ** m = &k;

*m->B = 1;//Error appears here
Run Code Online (Sandbox Code Playgroud)

我想我已经正确地遵循了指针引用的规则.我仍然不知道为什么会这样.有人能帮助我吗?

son*_*yao 8

operator->具有较高的优先级operator*,所以*m->B是等同*(m->B); 虽然m->B在这里无效.

你应该把它改成(*m)->B.

  • 史诗谢谢!一旦它允许我,我就会将其标记为答案!(显然是11分钟) (2认同)