我一直在阅读有关 C 语言中的 OOP 的内容,但我从来不喜欢你不能像 C++ 中那样拥有私有数据成员。但后来我想到你可以创建 2 个结构。一种是在头文件中定义,另一种是在源文件中定义。
// =========================================
// in somestruct.h
typedef struct {
int _public_member;
} SomeStruct;
// =========================================
// in somestruct.c
#include "somestruct.h"
typedef struct {
int _public_member;
int _private_member;
} SomeStructSource;
SomeStruct *SomeStruct_Create()
{
SomeStructSource *p = (SomeStructSource *)malloc(sizeof(SomeStructSource));
p->_private_member = 42;
return (SomeStruct *)p;
}
从这里您可以将一个结构转换为另一个结构。
这被认为是不好的做法吗?或者经常这样做吗?
sizeof(SomeStruct) != sizeof(SomeStructSource)
. This will导致某人有一天找到你并谋杀你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)