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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти все пути шахматного коня между двумя заданными полями, не содержащие повторяющихся полей http://www.cyberforum.ru/cpp-beginners/thread1064714.html
Найти все пути шахматного коня между двумя заданными полями, не содержащие повторяющихся полей. ПОМОГИТЕЕЕЕ если кто напишет код прокоментите плиз Добавлено через 6 часов 16 минут ну пжста помогите)
C++ Найти раскраску вершин графа минимальным числом цветов так, что ни одно ребро не соединяло две вершины одного цвета Найти раскраску вершин графа минимальным числом цветов так, что ни одно ребро не соединяло две вершины одного цвета. помогите по братски срочно надо) http://www.cyberforum.ru/cpp-beginners/thread1064713.html
Найти максимальные элементы столбцов матрицы C++
Помогите, пожалуйста, с таким заданием: определить и инициализировать двумерный массив целочисленных элементов, затем удвоить все положительные четные значения; с помощью оператора new создать одномерный массив, состоящий из элементов типа double precision floating point, и заполнить его кубами максимальных элементов каждой колонки исходного массива. вывести оба массива. Удалить второй массив...
Структуры.не считывается из файла C++
Всем привет! Ребят,тут такое дело,вобщем задали нам лабу написать.Нужно было написать программу,которая считывала бы из файла фамилию сотрудника и выводила бы его год рождения и оклад,программа то работает,но из файла не считывается,помогите разобраться,а то послезавтра сдавать уже:cry: #include "stdafx.h" #include <fstream> #include <string.h> #include <stdlib.h> #include <stdio.h>...
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 не помогло. При использовании одной лишь латиницы алгоритм работает... В чём может быть проблема? #include <conio.h> #include <stdio.h> #include <string> void main() { printf("input\n"); подробнее

Показать сообщение отдельно
DU
1480 / 1056 / 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 =

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