在C++中,安全和可移植的编程实践,确实需要对类对象的结构和布局保持某种程度的“健康的不知情”.对于一个类而言,并非总是“所见即所得”。
编译器会在类中放东西,而且不同平台的编译器之间的实现并不一致。比如虚指针的位置,可能在对象的头部,也有可能在尾部。 不要对类的内部结构做假定!!!
我们得到的启示就是,应该在高层操纵类对象,而不应该把它当成一组位的集合。在不同的平台上,高层的操作将会做相同的事情,但它们的底层实现可能并不相同。
在C++中,安全和可移植的编程实践,确实需要对类对象的结构和布局保持某种程度的“健康的不知情”.对于一个类而言,并非总是“所见即所得”。
我们得到的启示就是,应该在高层操纵类对象,而不应该把它当成一组位的集合。在不同的平台上,高层的操作将会做相同的事情,但它们的底层实现可能并不相同。