Как правильно реализовать оболочку вокруг ОС? [закрыто]C++

Программы на C++. Форум разработчиков
Anonymous
Как правильно реализовать оболочку вокруг ОС? [закрыто]

Сообщение Anonymous »

Предположим, у меня есть класс OS, который объявляет только интерфейс операционной системы.

Код: Выделить всё

struct OS {
virtual int read();
virtual int write();
virtual int open();
virtual int close();
/*   ... a lot of methods  */
};
Для этого интерфейса также существует расширение с дополнительными методами

Код: Выделить всё

struct OS_with_socks: OS {
virtual int socket();
virtual int bind();
virtual int listen();
/*   ... a lot of other methods   */
};
Кроме того, у меня есть класс act_OS, который определяет read() как ::read, write как ::write() и т.д. act_OS является производным от OS. Теперь я хочу определить класс actual_OS_with_socks, который делает то же самое, но для расширенного интерфейса ОС. Как правильно это сделать? Вот так?

Код: Выделить всё

struct actual_OS_with_socks: OS_with_socks, actual_OS {
/* implementation of methods socket, listen, bind, e.t.c */
}
Это хорошая практика? Можно ли избежать двойного наследования, сохраняя при этом разделение базового интерфейса POSIX и интерфейса сокета? Это правильный способ сделать это?
(Мне нужна оболочка ОС для целей тестирования)

Подробнее здесь: https://stackoverflow.com/questions/793 ... und-the-os

Вернуться в «C++»