Страницы

Поиск по вопросам

среда, 12 декабря 2018 г.

Можно ли в структуру вставить ф-цию?

Например:
struct st { int n = 0; int m = 0; int summa (int i, int j) { return n + m; } }
код, конечно не работает, но можно ли сделать что-то подобное в Си?


Ответ

В таком виде — нет, это вам не C++. Но ничто не мешает передавать this явно.
К слову, пространств имён тут тоже нет, так что функцию придётся вытащить за пределы структуры.
И вообще, Си — это язык низкого уровня, без прикрас и синтаксического сахара. Так что извольте раскладывать всю программу по полочкам.
struct st { int n; int m; };
void st_constructor(struct st* this) { this->n = 0; this->m = 0; }
int st_summa(const struct st* this) { return this->n + this->m; }

Комментариев нет:

Отправить комментарий