|
|
1
4
是错误的当
通过尝试以下操作,您将注意到错误的原因:
你会注意到
|
|
|
2
2
当你转换
但是当你转换
你的非工作尝试都相当于
C样式的cast的行为类似于
守则
到达
|
|
|
3
2
停止使用C样式的转换这行代码没有任何合理之处;它重新解释了
但是GME和PCH子对象的地址是 不 同样,你得到的指针也是垃圾。然后其他一切都失败了。
这行也可以写成
这个
在某些情况下,重新解释cast(或通过void错误地跳闸)是可行的;但是它们是脆弱的,并且涉及到标准中相对深奥的文本。 只需始终将void ptr返回到其原始类型,而不要重新解释其他类型的cast或C风格的cast指针。 |
|
4
1
当使用继承时,指针值需要从指向派生类的指针调整为指向基类的潜在不同指针,即使没有多重继承。例如,如果在派生类中添加虚拟方法,则指向基类的指针通常会根据指向vtable的指针的大小进行调整:
此外,在虚拟继承的情况下,不可能找到正确的指针调整,因此基类指针的实际值显式存储在每个派生类实例中。 |
|
|
Silverspur · “X是Y的模糊基”:多重继承噩梦 8 年前 |
|
|
Aedoro · 扩展多个类的C++函数参数 8 年前 |
|
|
user6022430 · Python3.4多重继承调用特定构造函数 10 年前 |
|
|
Mark van der Wilk · 用于重写继承方法的Mixin 10 年前 |
|
pasha · 是否可以为复制基的虚拟函数提供不同的定义? 10 年前 |
|
|
Daniel · 如何使继承从父类到子类python34起作用 10 年前 |