* 和-> 优先级

(Apple *)pf->peel(); 
    则报错说
    ct.cpp: In function ‘int main()’:
ct.cpp:48: 错误:void 值未如预期地被忽略

(peel函数我定义的返回值是void,这个报错是不是说明 (Apple *) 这个强转是执行完 pf->peel();  后才执行的? 他把 void强转为 (Apple *)? 如果是的话,这和我记忆中的 -> 和 ()的优先级及结合性不符啊)

后来改为:

((Apple *)pf)->peel(); 
就好使了,运行了子类的peel函数,我查了优先级, -> 和 ()是同级的啊,而且结合性是自作往右,那么  (Apple *)pf->peel();  该表达式中应该先执行 (Apple *)pf,为何
(Apple *)pf->peel();  会报错呢?

不是-> 和 (),而是-> 和 *比较,->优先级高

上一篇:CentOS7安装nvidia-docker


下一篇:sql 2012 用户sa登陆不上