Форум программистов, компьютерный форум CyberForum.ru

Проектирование ОО архитектуры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как переделать из консольного приложения в форму? http://www.cyberforum.ru/cpp-beginners/thread368301.html
Всем привет! Есть рабочее консольное приложение на с++. управляет видеосервером, коннектит, посылает комманды и тп. всё через консоль. задача - сделать управление через программку под винду, кнопки жать то есть. можно ли как-то добавить прямо в рабочий проект (консольный) форму, натянуть нужных кнопок и привязать к ним выполнение консольных комманд? или при создании приложения Windows Forms...
C++ Я не могу преобразовать PNG (RGBA) в JPEG Проблема заключается в том, что программа сразу закрывается! #include <stdio.h> #include <stdlib.h> extern "C" { #include "png.h" #include "jpeglib.h" } typedef struct { int w, h, d, t, ps, ts; unsigned char pl; unsigned char tr; unsigned char * p; } image_info; http://www.cyberforum.ru/cpp-beginners/thread368292.html
C++ Псевдоалгоритм Хаффмана
есть алгоритм n – количество символов исходного алфавита P – массив вероятностей, упорядоченных по убыванию C – матрица элементарных кодов L – массив длин кодовых слов Huffman (n,P) IF (n=2) C := 0, L := 1 C :=1, L :=1 ELSE q:= P +P
C++ Непонятный синтаксис
Вот есть обявление. sp<DataSource> source; sp<DataSource> это что? Спасибо!
C++ База данных для приемной комиссии института. http://www.cyberforum.ru/cpp-beginners/thread368271.html
Нужно составить простенькую программу с базой данных для приемной комиссии института. Выручайте... Она не должна быть какой - то мудреной. Это домашнее задание. Но в ней должна быть какая то графическая оболочка. Желательно описать что за что там отвечает. Просто с языком я не знаком. Базу данных я потом сам составлю. Я там должен буду вводить ФИО, телефон, курс, и группу на которую зачислен...
C++ Нужны коментарии ко коду. Все доброго времени! Такой вопрос, есть код, работает исправно, что делает тоже ясно. Часть я уже прокоментил, но с большей частью траблы.( Прокоментируйте кажду строку что б докладно понимать какая строка что делает и зачем. Очень признателен! std::ifstream ifile("read.txt");//Считывание с файла. std::ofstream ofile("write.txt");//Запись в файл. if(ifile.is_open()){ ... подробнее

Показать сообщение отдельно
Bers
Заблокирован
18.10.2011, 16:54  [ТС]     Проектирование ОО архитектуры
Цитата Сообщение от silent_1991 Посмотреть сообщение
Bers, именно для таких вещей в джаве и шарпе используются интерфейсы. Поскольку в чистом виде в плюсах их нет, то надо использовать абстрактные базовые классы (которые по сути своей те же интерфейсы, только возможностей у них чуть больше).
А вообще, там, где нужна реальная производительность, забивают на ООП и пишут на структурных языках. Если вам действительно нужна производительность - так и поступите. Если же вы о производительности говорите лишь постольку-поскольку - забейте и используйте полиморфизм.
Ладно хорошо. Допустим, я забил на производительность. Но я же не могу забить на здравый смысл.

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

Что значит переопределить виртуальный метод?
Это значит:
1. КОПИПАСТА ЕГО ПРОТОТИПА.
2. В ручную пишется реализация этого метода.

То есть, если я сделаю класс, в который закидаю все "гарантированно идентичное".
От него унаследуюсь. А в потомке тупо копипастой пропишу прототипы методов, и сделаю ручками их реализации, я получу абсолютно тоже самое, как если бы делал полиморф, с единственной разницей - не смогу пользоваться механизмом полиморфа в рантайме (который по задаче мне и не нужен ). И не буду нести потерь производительности.

Другими словами, полиморф предназначен именно для тех случаев, когда целое семейство воспринимается как некоторая единая сущность.
Но от копипасты он никак не избавляет. Все, что вы хотите сделать уникальным в плане реализации - та же самая хардкорная копипаста прототипов методов, и ручная их реализация.

Я же хотел избавиться от необходимости каждый раз в новом классе заново копипастить весь набор прототипов, которые я хочу сделать уникальным.
 
Текущее время: 18:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru