c 语言实现封装,继承和多态

封装

c 语言使用的 struct 没有访问控制,任何程序都能访问 struct 的成员。为了隐藏 struct 里的成员名称和位置,可以将具体的 struct 定义放在 .c 文件中,而在头文件中增加一个指向该结构体的指针。因为无法得知指针类型的具体定义,对这个私有结构体成员的访问只能通过提供的 set() 和 get() 函数。

下面是头文件 test.h 的定义:

#ifndef __TEST_H__
#define __TEST_H__

struct test {
    struct _test* t;
};

int test_constructor(struct test*);
int test_get(struct test*);
void test_set(struct test*, 

阅读全文…