The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Вторая редакция патчей для ядра Linux с поддержкой языка Rust, opennews (?), 05-Июл-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


226. "Вторая редакция патчей для ядра Linux с поддержкой языка Rus..."  +/
Сообщение от Аноним (266), 06-Июл-21, 14:27 
>которые по сути абстрактные классы с методами использующими динамический диспатч. И реализованы они при помощи vtable -- таблички указателей на функции

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

Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

247. "Вторая редакция патчей для ядра Linux с поддержкой языка Rus..."  +1 +/
Сообщение от Ordu (ok), 06-Июл-21, 15:19 
Не, не надо.

static int my_method(struct my_struct *this) { ... }

static struct my_vtable vtable = {
    .method = my_method;
};

// единственная extern функция
void initialize_my_struct(struct my_struct *this) {
    this->vtable = vtable;
}

Ответить | Правка | Наверх | Cообщить модератору

249. "Вторая редакция патчей для ядра Linux с поддержкой языка Rus..."  +/
Сообщение от Аноним (266), 06-Июл-21, 15:24 
my_method не глобальное имя?
Ответить | Правка | Наверх | Cообщить модератору

250. "Вторая редакция патчей для ядра Linux с поддержкой языка Rus..."  +/
Сообщение от Ordu (ok), 06-Июл-21, 15:36 
> my_method не глобальное имя?

static, написано же. Только в одном модуле компиляции доступна. Грубо говоря, в одном .c файле работает. poor man's namespaces

Ответить | Правка | Наверх | Cообщить модератору

334. "Вторая редакция патчей для ядра Linux с поддержкой языка Rus..."  +/
Сообщение от Аноним (192), 06-Июл-21, 22:40 
Слепой слепых ведет.
Ответить | Правка | Наверх | Cообщить модератору

329. "Вторая редакция патчей для ядра Linux с поддержкой языка Rus..."  +/
Сообщение от Аноним (192), 06-Июл-21, 22:24 
С инкапсуляцией во всех языках (кроме совсем реликтовых)
- даже в тех, которые официально не считаются объектными!

Если понимать, что такое инкапсуляция на самом деле, и как ее готовить.

А если не понимать, то можно запросто промазать с инкапсуляцией даже в "классических".
Не заметить этого, и шпарить дальше, а потом удивляться, почему над вами смеются.

Ответить | Правка | К родителю #226 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру