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

Множественное наследование: прямоугольник, квадрат, ромб, параллелограмм - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Освоение создания параллельных программ и функций обмена данными между процессами http://www.cyberforum.ru/cpp-beginners/thread558484.html
Помогите пожалуйста написать программу...Буду очень признателен В каждом подчиненном процессе дано целое число, причем только для одного процесса это число отлично от нуля. Переслать ненулевое...
C++ перегрузить оператор ++ Всем привет!!!Тут такое дело, когда запускаю программу она запускается, а когда дело доходит до перегрузки она выдает ошибку((: То есть закрывает ее. -- Хотел спросить как это исправить? Вот код... http://www.cyberforum.ru/cpp-beginners/thread558481.html
C++ Элементы матрицы, стоящие на пересечении нечетных строк и нечетных столбцов заменить переменной P
элементы матрицы Q,стоящие на пересечении нечетных строк и нечетных столбцов заменить переменной P.ПОМОГИТЕ ПОЖАЛУЙСТА ЧЕМ СМОЖИТЕ!!!БУДУ ОЧЕНЬ ПРИЗНАТЕЛЬНА
Подсветить символ цветом (положение курсора) C++
Как сделать чтобы 1 символ был подсвечен? т.е. на экране есть массив 000 001 000 нужно чтобы '1' как то выделялся Хелп))
C++ программу подсчета числа четных цифр http://www.cyberforum.ru/cpp-beginners/thread558450.html
Задача такая: Напишите программу подсчета числа четных цифр, используемых в записи N-значного числа M. на С++ извините что тороплю, но мне срочно надо, плз
C++ Прототип функции Здравствуйте) Написать программу упорядочивания элементов массивов А(50), В(50), С(50) по возрастанию, используя прототип функции. p.s.- если вас не затруднит напишите пожалуйста коментарий к... подробнее

Показать сообщение отдельно
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
25.04.2012, 23:06
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Запросто: Ромб обладает всеми свойствами параллелограмма
Давайте возьмем аналогичный пример, но попроще. Иерархия прямоугольник <- квадрат. Во-первых, самое очевидное: зачем хранить в объекте квадрата две размерности? Во-вторых, всё это может стать причиной неочевидного поведения, например:
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
#include <cassert>
 
 
struct rectangle {
    rectangle(int width_, int height_) : width(width_), height(height_) {}
 
    int width;
    int height;
};
 
 
struct square : rectangle {
    square(int width) : rectangle(width, width) {}
};
 
 
void change_width(rectangle & rect, int width) {
    rect.width = width;
}
 
 
int main() {
    square sq(4);
    assert(sq.width == sq.height);
    
    change_width(sq, 5);
    assert(sq.width == sq.height);    // fail
}
Возможность изменить ширину прямоугольника, не меняя высоту - вполне логичное свойство, в отличии от квадрата. Наследуя же квадрат от прямоугольника первый наследует так же и поведение второго, в том числе и это свойство. Может быть с точки зрения геометрии квадрат и частный случай прямоугольника, но это ещё ничего не значит.
P.S.: надеюсь я ясно излагаю.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.