C++的源程序改写成C语言类的成员函数和数据成员

2021-04-23 03:30

阅读:485

标签:机制   c中   全局变量   行操作   控制   修饰符   line   指针   结构   

由于struct没有对成员的访问权限进行控制,必须加入额外的机制进行访问控制,这样一来就使得程序复杂化了,所以只能放弃访问权限的控制。
1)对于类的数据成员可以直接转为C中结构体的数据成员。
2)函数则需转化为对应的函数指针,因为struct里不允许出现函数的声明和定义。而函数前如果有virture,inline等修饰符也要去掉,如函数void funca(int a);改为void (funca)(struct B p,int a);大家可以看到函数指针的原型里加了一个指针struct B的指针,这是因为要在函数内部对类的成员进行操作,要靠该指针指定结构体的成员。在类的成员函数里,实际上在参数列里也隐含有一个指向自身的this指针。
3)对于静态成员则要定义成全局变量或全局函数,因为结构体中不能有静态成员。

C++的源程序改写成C语言类的成员函数和数据成员

标签:机制   c中   全局变量   行操作   控制   修饰符   line   指针   结构   

原文地址:https://blog.51cto.com/14863804/2509418


评论


亲,登录后才可以留言!