会不会有切片的危险
result Compare(const Osp::Base::Object &obj1, const Osp::Base::Object &obj2, int &cmp) const {
cmp = ((const Block)obj1).NumSuperBlocks() - ((const Block)obj2).NumSuperBlocks();
}
在哪里
class Block : Object {/*Filler*/}
并且obj1
确定obj2
是Block
对象?
我很想使用:
cmp = ((const Block*)&obj1)->NumSuperBlocks() - ((const Block*)&obj2)->NumSuperBlocks();
但是在阅读 SO 对对象切片标签的简要描述时,我很想使用前者。但我真的不想要任何讨厌的无声切片。