有人可以解释为什么吗
a-> b.edge = 10;
无法正常工作并返回错误:
错误:“类对撞机”没有名为“ b”的成员
是因为当我在Colider上有指针时,无法使用它指向Colider_Triange类吗?
代码:
verifyIdToken
答案 0 :(得分:6)
有人可以解释为什么吗
a->b.edge = 10;
无法正常工作并返回错误:
error: ‘class Colider’ has no member named ‘b’
解释很简单:
a
是指向类型Colider
的指针。Colider
没有名为b
的成员。a->b
,该子表达式仅在Colider
具有名为b
的成员时才有效。是因为当我在Colider上有指针时,无法使用它指向Colider_Triange类吗?
不。您可以使用指向基本类型的指针 指向派生类型的对象。
delete(a);
这是另一个错误:除非定义了基类的析构函数virtual
,否则通过指向基类的指针删除对象的行为是不确定的。
答案 1 :(得分:0)
是因为当我在对撞机上有指针时,我无法使用它来指向 在Colider_Triange类上?
您可以使用Colider *指向Colider_Triangle实例,但此时只能使用Colider接口。