内联函数和虚函数的修饰符inline 、virture 要全部去掉。内联函数体则要去掉,将内联函数在外面定义成一个函数。如:
class B
{
…
virture void funb();
inline int add()const {return a+b;};
private:
int a;
int b;
…
}
改为:
typedef classB B;
struct classB
{
…
void (funb)(struct classB p);
int (add)(struct classB p);
int a;
int b;
}
void classB_funb(B p)
{
…
}
int classB_add(B p)
{
return p->a+p->b;
}
void fun_classB(B *p)
{
…
p->funb=classB_funb;
p->add= classB_add;
}C++的源程序改写成C语言类的内联函数和虚函数
原文:https://blog.51cto.com/14863804/2509441