下面是一个例子:
struct C_point {......};
class Point {
public:
operator C_point() { return _c_point; }
//....
private:
C_point _c_point;
};
C struct 在C++中的一个合理用途:是当你要传递一个复杂的class object的全部或部分到某个C函数中去时,struct 声明可以将数据封装起来,并保证拥有与C兼容的空间布局。然而这项保证只在组合的情况下才存在,如果是继承而不是组合,编译器会决定是否应该有额外的data members被安插到base struct subobject之中
本文探讨了在 C++ 中使用 C 结构体 (Cstruct) 的一种合理方式,即通过组合而非继承的方式将数据封装起来,以确保与 C 语言兼容的空间布局,从而实现将复杂类对象的部分或全部传递给 C 函数的功能。
125

被折叠的 条评论
为什么被折叠?



