#c
Например:
struct st {
int n = 0;
int m = 0;
int summa (int i, int j) {
return n + m;
}
}
код, конечно не работает, но можно ли сделать что-то подобное в Си?
Ответы
Ответ 1
В таком виде — нет, это вам не 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; }Ответ 2
Нет, в си у структур не может быть функций-членов. Конечно, там могут быть указатели на функции, но это совсем не то, поскольку занимает место в каждом экземпляре структуры и при вызове не получает неявный this.
Комментариев нет:
Отправить комментарий