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

Сложность абстракции, полиморфизм, дублирование и другие - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перестановка элементов по заданному правилу http://www.cyberforum.ru/cpp-beginners/thread392038.html
Даны массив А размерности N*M и массив В размерности М.Элементы первого столбца массива А упорядочены по невозрастанию.Включить массив В в качестве новой строки в массив А с сохранением упорядоченности. Заранее спасибо.
C++ Не могу понять ошибку. При вводе значений вылетает программа. Задача: Дана система 2-х сторонних дорог. Известна цена на каждом пути. Определить убыток при закрытии дороги. Алгоритм: Функция "poisk" в моей программе находит в графе и выводит самый дешёвый путь (вершины) и его цену. Функция "del" удаляет в матрице инцидентности цену на указанном пути. Исходные данные с файла, где 1 строка кол-во вершин. Проблема: Прога работает лишь при использовании... http://www.cyberforum.ru/cpp-beginners/thread392037.html
Найти путь из А в И C++
Есть у нас точка А и точка В. Идем с А в В, найти пути, которые будут равны 250 и 350 очок. Одна из идей - построить биннарное дерево и обойти. Собственно, интересует как лучше (читать правильно) представить ето (та и граф напоминает, но вага узлов? а не ребер)? http://*************/clip/m0/1321924569-clip-32kb.jpg?nocache=1
C++ функция класса - вызов
есть класс Graph с функцией int OutputMatrix(int i,int j); и матрица int **Matrix; в области private, в cpp я описал функцию: int Graph::OutputMatrix(int i,int j){ int k; k=Matrix; return k; } правильно ли я ее вызываю? int i=1; int j=1;
C++ Поиск в стеке! http://www.cyberforum.ru/cpp-beginners/thread392015.html
Помогите решить: нужно найти сколько элементов стека находится между его минималь- ным и максимальным элементами. Вот что у меня есть #include <iostream> using namespace std; struct tstk { int inf; tstk *a; }sp;
C++ Прямоугольный массив, сортировка В прямоугольном массиве(7 на 8) с по-мощью процедуры сделать все строки упорядоченными по воз-растанию. Исходные числа из файла читать, начиная с "К"-го числа, где К<10 вводить с кла-виатуры. 1) Печатать массив до и после сортировки с помощью проце-дуры. 2) Построить процедуру, кото-рая в заказанной строке переда-ваемого ей прямоугольного массива упорядочивает элемен-ты по убыванию методом... подробнее

Показать сообщение отдельно
Bers
Заблокирован
26.11.2011, 01:30  [ТС]     Сложность абстракции, полиморфизм, дублирование и другие
Цитата Сообщение от fasked Посмотреть сообщение
Вы порождаете сущность, которая дублирует функционал уже существующих сущностей.
Если в проекте присутствует одновременно и вектор, и велосипед, реализующий те же самые услуги - это ещё можно как то называть "дублированием функционала".
Но если в проекте присутствует только велосипед, или только вектор, то ни о каком дублировании уже нет и речи.

Цитата Сообщение от fasked Посмотреть сообщение
Где это Вы в полиморфизме дублирование разглядели? Полиморфизм порожден как раз таки устранять дублирование, а не порождать его.
Примеры дублирования кода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
struct A { int a;};
struct B { int a;};  //одна из них явно лишьняя
 
 
class Base
{
public:
    Base(){}
    virtual ~Base(){};
    virtual void View()=0;
};
 
class ConcreteA: public Base
{
public:
                     ConcreteA():Base(){}
    /*virtual */    ~ConcreteA() {}
    /*virtual*/      void View() { std::cout<< "ConcreteA\n";}
};
 
class ConcreteB: public Base
{
public:
                    ConcreteB():Base(){}
    /*virtual */    ~ConcreteB() {}
    /*virtual*/     void View() { std::cout<< "ConcreteB\n";}
};
 
//Самый популярный рецепт изготовления полиморфного семейства:
//1. Написать базовый интерфейс.
//2. Хардкорно копипастить его по всем потомкам.
 
//Причем зачастую, полиморф пользуют везде, где хотят 
//программировать в терминах интерфейсов. 
//даже там, где не требуется воспринимать абсолютно 
//разные типы объектов, как одну и туже сущность.

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