我被要求将以下C++
代码更改为C
。
我几乎确定C++
类可以转换为C结构。
但是,如果这些类是继承的类,并且包含一些函数,会发生什么情况?我应该使用指向函数的指针吗?如果这些函数是Parent类的呢?
class A {
protected:
int x;
public:
A():x(0){}
virtual void Method1()const {}
virtual void Method2(){}
void Method3()const {}
virtual ~A() {}
};
class B : public A {
public:
virtual void Method1() {}
virtual void Method4() const {}
virtual ~B(){}
};
void main(){
B* b;
b = new B;
b->Method1();
b->Method2();
b->Method3();
b->Method4();
}
这是我的部分解决方案(仅针对“主要” 部分)。我假设“方法”函数是结构a和b中函数的指针。可以吗?
void main(){
B* b;
A* a;
b = (B*)malloc(sizeof(B));
a = (A*)malloc(sizeof(A));
if ((b==NULL)||(a==NULL)) // memory alloc. check
return;
b->Method1=Method1_t;
b->Method2=Method2_t(a);
b->Method3=Method3_t(a);
b->Method4=Method4_t;
// MethodX_t are written as functions outside structs, main.
}
答案 0 :(得分:0)
您正尝试一次执行太多任务。我建议逐步添加功能。
除非您已完成上面列表中所有之前的工作,否则不要尝试执行任务。
希望有帮助。