Преобразование класса в структуру

У меня есть задание, где я должен преобразовать программу, похожую на c ++, в программу c.

Если у меня есть что-то вроде

class B {
int var;
int somefunction(){
some code here
}
}

это будет изменено на

struct B{
int var;
}

int somefunction(){
some code here
}

В основном я должен изменить class в struct каждый раз, когда я вижу это, и если есть функция, я должен вывести ее за пределы структуры сейчас.

Каков наилучший подход к выполнению чего-то подобного? Я понимаю эту теорию, но не знаю, как к ней приблизиться.

1

Решение

Обычно вы передаете указатель на структуру в функцию. Например, если у вас был этот код 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?

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector