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

Сравнение при наследовании - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти все пути шахматного коня между двумя заданными полями, не содержащие повторяющихся полей http://www.cyberforum.ru/cpp-beginners/thread1064714.html
Найти все пути шахматного коня между двумя заданными полями, не содержащие повторяющихся полей. ПОМОГИТЕЕЕЕ если кто напишет код прокоментите плиз Добавлено через 6 часов 16 минут ну пжста...
C++ Найти раскраску вершин графа минимальным числом цветов так, что ни одно ребро не соединяло две вершины одного цвета Найти раскраску вершин графа минимальным числом цветов так, что ни одно ребро не соединяло две вершины одного цвета. помогите по братски срочно надо) http://www.cyberforum.ru/cpp-beginners/thread1064713.html
Найти максимальные элементы столбцов матрицы C++
Помогите, пожалуйста, с таким заданием: определить и инициализировать двумерный массив целочисленных элементов, затем удвоить все положительные четные значения; с помощью оператора new создать...
Структуры.не считывается из файла C++
Всем привет! Ребят,тут такое дело,вобщем задали нам лабу написать.Нужно было написать программу,которая считывала бы из файла фамилию сотрудника и выводила бы его год рождения и оклад,программа то...
C++ Работает с Int, а с char отказывается http://www.cyberforum.ru/cpp-beginners/thread1064673.html
#include <stdio.h> main() { char i; i=func1('t','p'); printf("%c", i); } func1(char p,char f) { char d;
C++ Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы Среда Visual C++2010 По логике должно работать, но почему то кириллица игнорируется, пытался исправить подключением библиотеки locale не помогло. При использовании одной лишь латиницы алгоритм... подробнее

Показать сообщение отдельно
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
07.01.2014, 13:11
в задание не вникал. немного прокоментирую про двойную диспетчиризацию:
я так понял, вы не совсем поняли эту штуку, раз написали, что вам не пересечение.

с++ одиночную диспетчеризацию предлагает из коробки. это просто виртуальные функции.
имеете указатель на базовый класс, вызываете через него виртуальный метод и что конкретно
будет происходить - зависит от реализации в том классе, на который ссылается этот указатель.
т.е. поведение зависит от реального типа одного объекта.

двойная диспетчеризация - это зависимость поведения от реальных типов двух объектов:
C++
1
bool overlap(Shape& a, Shape& b);
аглоритм расчета пересечения зависит от того, что за типы у a и у b.

эта функция легко переделывается в метод:
C++
1
2
3
4
virtual bool overlap(Shape& b)
{
  return ::operlap(*this, b); // вызов свободной функции
}
у вас вместо overlap - operator =

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