关键词的困扰
如果struct
关键词的使用实现了C的数据抽象观念,而class
关键词实现的是C++
的ADT
观念,那么当然“不一致性”是一种错误的语言用法;就像一个object
被矛盾的声明为static
和extern
:
static int foo;
extern int foo;
策略性正确的struct
C struct
在C++
中的一个合理用途,是当你要传递“一个复杂的class object
的全部或部分”到某个C函数去时,struct
声明可以將数据封装起来,并保证有与C
兼容的空间布局。然而这项保证只有组合的情况下才存在。如果是”继承“而不是“组合”,编译器会决定是否应该有额外的data members
被安插到base struct object
之中