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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверьте задачу правильно решена ли http://www.cyberforum.ru/cpp-beginners/thread380545.html
Вопрос Определить минимальный и максимальный элементы, вычислить их разность. Задача моя #include <stdafx.h> #include <iostream> #include <math.h> int main () { setlocale(0,"Rus"); int n,i,x, y,max=-32768,min=32767;
C++ Найти сумму элементов первого столбца без одного последнего элемента, сумму элементов второго столбца без двух последних... Здравствуйте, форумчане! У меня вот такая вот задачка: Задан двумерный массив. Найти сумму элементов первого столбца без одного последнего элемента, сумму элементов второго столбца без двух последних, сумму элементов третьего столбца без трех последних и т. д. Последний столбец не обрабатывается. Среди найденных сумм найти максимальную. Я сделал всю задачу, кроме максимального значения среди... http://www.cyberforum.ru/cpp-beginners/thread380518.html
C++ предлагаю людям класс "каждому потоку- своё окно" для тестирования многопоточных приложений.
Друзья! То есть если вы разрабатывает многопоточные приложения и закалебались смотреть, что тот или иной поток выводит, то этот класс для вас. Использовать его просто. Подключаете хидер и пишете: cout__<< "что-то"; и видите, что появилось окно, глде написано "что-то" Если создадите ДРУГОЙ поток и напишите там: cout__<< "еще что-то"; То и увидите другое окно с еще чем-то. Вот так и...
C++ Центр графа
Дана матрица смежности. Найти максимальное расстояние в графе. Пол дня уже мучаюсь, искал в гугле, сам пытался, но ничего не получается... просто тупик... Код вылаживать не буду, так как он не правильный. Просто расскажу, как я хочу сделать. Беру первую вершину, и делаю ее текущей. Если существует ребро между текущей и другой вершиной, делаю ее текущей и иду дальше. При этом считаю все...
C++ задача со строками http://www.cyberforum.ru/cpp-beginners/thread380453.html
пожалуйста, помогите. Нужно написать программу , которая определит длину введенной строки L, и, если L>10, то удаляются все цифры. я так понял, что в строке должны быть и цифры и буквы
C++ Перехват запросов Здравствуйте Форумчане, у меня возникла проблема, я хочу сделать что-то вроде веб-логгера который будет перехватывать запросы и т.д. Не подскажите ли Вы мне как это можно реализовать. Заранее спасибо. подробнее

Показать сообщение отдельно
Bers
Заблокирован
10.11.2011, 21:02     Вопрос по наследованию
Цитата Сообщение от Deviaphan Посмотреть сообщение
Есть метод изменения ширины, который должен изменять ширину. В квадрате же он должен синхронно изменять и высоту. Метод "ИзменитьШирину", который изменяет высоту это ведь не правильно. С этим ты готов согласиться? Это нарушение логики. Т.е. для квадрата методы ЗадатьШирину и ЗадатьВысоту должны быть закрыты и вместо них должен быть добавлен метод ЗадатьРазмер. Т.е. квадрат не является прямоугольником с точки зрения интерфейса
Я не согласен.
Для прямоугольника: Изменяем высоту - изменится высота.
Изменяем ширину - изменится ширина.

Для квадрата - изменяем хоть ширину, хоть высоту. Все равно запускается родной для квадрата метод "изменить размер"

То есть метод "изменить ширину" для квадрата такой же правомерный, как и для любого другого прямоугольника. Но реализация метода отличается тем, что для квадрата изменится не только ширина, но и высота.

Я имею полное право изменить ширину квадрата. Что мне мешает это сделать?
Я не имею права для квадрата изменить ширину, а высоту оставить прежней. Но об этом контракте позаботится сам квадрат. Его реализации методов "изменить ширину/высоту".

Для прямоугольника метод "изменить ширину" - изменит ширину фигуры.
При этом, может изменится и высота, если фигура - квадрат. Что здесь нелогичного?

Я хочу сказать, что у прямоугольника при изменении ширины, высота не обязана сохранять прежнее значение.

Вы можете сказать: но это тупо! Зачем квадрату вообще иметь методы "изменить ширину/высоту", если идеологически ему нужен только один метод "ИзменитьРазмер" ?

Тут я с вами соглашусь полностью. Для квадрата первые два интерфейса кажутся излишними.
Но это - зависит от архитектурного решения. Такое решение может быть не самое красивое, с точки зрения минимализма, но вполне приемлимое.

Об этом и пишет Маерс (я по крайней мере так его понял) - о том, что оо-программирование, это в первую очередь программирование в терминах интерфейсов.

И при установлении различных отношений между классами, в первую очередь нужно согласовывать интерфейсы предков и потомков, что бы не получилось "аляписто".

Что бы не пришлось на некоторые методы вообще ставить заглушки (метод как бы есть, а использовать его нельзя).

Что бы не получилось что методов больше, чем требуется объекту по смыслу.

Хотя пример для иллюстрации он привел фейловый

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
Абсолютно да.) Просто слово "низкоуровневое" наводит на более глубокие изыскания.)
ну это я так, понтануццо просто хотел))
Заодно интересную ссылку народу предоставил)

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