У меня есть задание, где я должен преобразовать программу, похожую на c ++, в программу c.
Если у меня есть что-то вроде
class B {
int var;
int somefunction(){
some code here
}
}
это будет изменено на
struct B{
int var;
}
int somefunction(){
some code here
}
В основном я должен изменить class
в struct
каждый раз, когда я вижу это, и если есть функция, я должен вывести ее за пределы структуры сейчас.
Каков наилучший подход к выполнению чего-то подобного? Я понимаю эту теорию, но не знаю, как к ней приблизиться.
Обычно вы передаете указатель на структуру в функцию. Например, если у вас был этот код C ++:
class A {
private:
int x;
public:
A() : x(0) {
}
void incx() {
x++;
}
};
эквивалентный код C будет:
struct A {
int x;
};
void init( struct A * a ) { // replaces constructor
a->x = 0;
}
void incx( struct A * a ) {
a->x++;
}
А потом назовите это так:
struct A a;
init( & a );
incx( & a );
Но я должен спросить, почему вы думаете, что вам нужно конвертировать код C ++ в C?
Других решений пока нет …