The OpenNET Project / Index page

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



"Проект MOOL развивает средства разработки драйверов ядра Lin..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Проект MOOL развивает средства разработки драйверов ядра Lin..." +/
Сообщение от dq0s4y71 (ok), 06-Окт-14, 15:48 
> А как эта скомпилированная программа на C/C++ узнает сколько памяти нужно выделить под переменную? Правильно, заголовки подключит.

Причём здесь заголовки? В Си вы можете написать в заголовке:

/* my_object.h */

struct my_object;
struct my_object * my_object_create();
int my_object_do_something(struct my_object * object);

И всё. А саму структуру и работу с ней вы можете расписать в реализации:

/* my_object.с */

struct my_object {
  int field1, field2;
  ...
};

struct my_object * my_object_create() {
  struct my_object * ret = malloc(sizeof(struct my_object));
  ...
  return ret;
}

int my_object_do_something(struct my_object * object) {

  object->field1 = ...;
  ...
}


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

В С++ такой номер не пройдёт - там, если вы хотите чтобы работали виртуальные методы, нужно иметь прототип класса. И изменить что-то в этом базовом классе без необходимости перекомпиляции всего когда снизу доверху вы не сможете.

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

Оглавление
Проект MOOL развивает средства разработки драйверов ядра Lin..., opennews, 04-Окт-14, 00:33  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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