Форум программистов, компьютерный форум 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) Построить процедуру, кото-рая в заказанной строке переда-ваемого ей прямоугольного массива упорядочивает элемен-ты по убыванию методом... подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
27.11.2011, 13:04     Сложность абстракции, полиморфизм, дублирование и другие
Цитата Сообщение от Bers Посмотреть сообщение
какого такого уровня?
Я имел в виду ту тему, из которой этот разговор вышел.
Цитата Сообщение от Bers Посмотреть сообщение
Класс не обязан содержать реализацию своего интерфейса, и тогда его называют "чисто-абстрактным классом".
Правда? Я то всегда думал, что абстрактный класс - тот, который имеет хотя бы один чисто виртуальный метод.

Цитата Сообщение от Bers Посмотреть сообщение
То есть, класс создаётся по некоторому шаблону, при помощи макроса.
Еще бы она была не ущербна. Мне ведь не нужно копировать вообще все прототипы функций.
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <memory>
#include <iostream>
 
class Base {
public:
   virtual ~Base() = 0;
 
   virtual void foo() {
      std::cout << "base foo " << std::endl;
   }
   
   virtual void bar() {
      std::cout << "base bar " << std::endl;
   }
   
   virtual void quz() {
      std::cout << "base quz " << std::endl;
   }
};
 
Base::~Base() { }
 
class Derived1 : public Base {
public:
   virtual ~Derived1() { 
   }
   
   virtual void quz() {
      std::cout << "derived 1 quz " << std::endl;
   }
};
 
class Derived2 : public Base {
public:
   virtual ~Derived2() { 
   }
   
   virtual void bar() {
      std::cout << "derived 2 bar " << std::endl;
   }
};
 
void foo(Base *p) {
   p->quz();
   p->foo();
   p->bar();
}
 
int main() {
   Base *p1 = new Derived1();
   Base *p2 = new Derived2();
      
   foo(p1);
   foo(p2);
   
   delete p1;
   delete p2;
   
   return 0;
}
Ну и можно сказать, что методов в базовом классе может быть вообще-то больше чем два или три. И они могут быть гораздо сложнее.
 
Текущее время: 04:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru