Форум программистов, компьютерный форум, киберфорум
Наши страницы

Немного философии ООП - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ OpenCV захват видео с веб-камеры http://www.cyberforum.ru/cpp/thread1808506.html
Начал изучать OpenCV. В просторах интернета нашел данный код: #include <cv.h> #include <highgui.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv) { // получаем...
C++ Как компилятор обрабатывает член класса static constexpr const char* Привет! Наткнулся на непонятный момент class Foo { public: static constexpr const char* PTR = "value"; }; без constexpr не компилируется. Вопрос - как компилятора без линкера... http://www.cyberforum.ru/cpp/thread1808427.html
C++ Распознование животных на изображении
Стала интересна тема распознавания образов на изображениях. Программа должна получать картинку с животным и определить какое это животное(как я понимаю, задача не простая, но все же) . Подскажите в...
Как подружить компьютер c МК через USB C++
Здравствуйте, уважаемые форумчане! Никогда не работал с USB нужна помощь. Есть компьютер под управлением Windows 7, плата разработки DE0-Nano-SoC. Необходимо написать программу для ОС, которая...
C++ Различия между Java и Си++ http://www.cyberforum.ru/cpp/thread1805942.html
Я раньше программировал на си++,сейчас начал на java,нужно понять основные различия 1. Каковы отличия в структуре программы вычисления простого арифметического выражения на языке Си и Си++ от...
C++ Отображение файла формата .fbx Здравствуйте,здесь мы будем мучать openGL, fbx sdk, ImageMagick, assimp. В двух словах, как я думаю, у меня проблема с UV координатами. Мне необходимо сделать программу для отображения .fbx... подробнее

Показать сообщение отдельно
Kastaneda
Jesus loves me
Эксперт С++
4700 / 2904 / 239
Регистрация: 12.12.2009
Сообщений: 7,397
Записей в блоге: 2
Завершенные тесты: 1

Немного философии ООП - C++

17.09.2016, 07:15. Просмотров 1066. Ответов 24
Метки (Все метки)

На днях на работе возник холивар с коллегами, к правильному решению пришли только на следующий день, почитав Мейерса и Саттера (один из участников холивара уже знал о правильном решении, но сторонников неправильного было большинство).
Рекомендаций от упомянутых гуру пока не говорю, предлагаю поразмышлять)

Итак - есть проект, в проекте используется ООП, скатываться до С считается мовитоном и не приветствуется.
Есть структура сеттингов
C++
1
2
3
4
5
6
struct Settings
{
    std::string param1;
    int param2;
    // etc
};
понадобилось сделать сериализацию/десериализацию этой структуры. По сути нужны 2 функции serialize(Settings)/deserialize(Settings). Но 2 функции - это С, обернуть их в класс и сделать статичными - это вроде как ООП, но с запашком.
C++
1
2
3
4
5
6
7
class Foo
{
public:
    static PackedObject serialize(Settings);
    
    static Settings deserialize(PackedObject);
};
По сути этот класс является неймспейсом и если из него реально сделать неймспейс (и это правильно), то даже остальной код трогать не придется. т.к. синтаксис использования не изменится. Но это сведет нас к тем же 2м сишным функциям, которых мы хотели избежать.

Вопрос - как сделать правильно, чтоб было хорошее ООП?

Не по теме:

rikimaru2013, хотел интересных вопросов?

2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.