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

РАБОТА С ВИРТУАЛЬНЫМИ ФУНКЦИЯМИ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка строк в С++ http://www.cyberforum.ru/cpp-beginners/thread85506.html
Здравствуйте, а можете помочь решить такую задачу на С++, пожалуйста, очень нужно) Дана строка, представляющая предложение. Слова в предложении состоят из маленьких латинских букв. Между словами находится 1 или более пробел. Также после слова, кроме последнего, может следовать запятая ",". За последним словом идет точка ".". Проверить правильность ввода. Вывести все слова: начинающиеся и...
C++ Функция, которая увеличивает на Т секунд время Описать процедуру IncTime (H, M, S, T), которая увеличивает на Т секунд время, заданное в часах Н, минутах М и секундах S (H, M и S- входные и выходные параметры, Т- входной параметр; все параметры целые положительные). Дано время (в часах Н, минутах М, секундах S) и целое число Т. Используя процедуру IncTime, увеличить данное время на Т секунд и вывести новые значения Н, М, S. Помогите... http://www.cyberforum.ru/cpp-beginners/thread85496.html
C++ Оформление ФУНКЦИИ
Дан двумерный массив X. Cформировать одномерный массив Y, для элементов которого выполняется условие: 0<cos(Xij)<корня 3/2. Оформить в виде ФУНКЦИИ. #include<iostream.h> #include<math.h> #include<conio.h> const int n=3; void main ( ) {
C++ Для данных матриц А и В проверить соотношение А*В=Е
Для данных 2х матриц А и В проверить соотношение А*В=Е. (посути матрицы квадратные) Е - единичная матрица, тобиш матрица у которой на главной диагонали единицы (1) а в остальных ячейках нули (0). Нужен именно програмный код, но если можно не откажусь от блоксхемы к этому програмному коду)) Зараннее премного благодарю людей которые окажут помощь в решении))
C++ Просто нужно!!! http://www.cyberforum.ru/cpp-beginners/thread85470.html
Буду краток: необходимо Умножить матрицу на себя транспонированую!!!(без хранения транспонированной) Как в вышмате это сделать я понимаю, а вот на С как это выглядит, не пойму!!! Кто чем может_)))
C++ помогите! Три друга были свидетелями ДТП. Первый заметил, что номер на-рушителя делится на 2, 7 и 11. Второй запомнил, что в записи номера участвуют всего две различные цифры, а третий – что сумма цифр рав-на 30. Определить четырехзначный номер нарушителя вот задача ее надо решить с помощью указателей, помогиет пожалста) подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,121
Записей в блоге: 26
14.01.2010, 16:58     РАБОТА С ВИРТУАЛЬНЫМИ ФУНКЦИЯМИ
zim22, так сейчас по большому счёту так оно и есть. Заводится асбтрактный класс "Фигура", в котором делается неопределёный виртуальный метод "площадь". Прямые наследники класса "фигура" ("фигура шар", "фигура куб", ...) определяют этот метод. Но они должны его делать НЕ виртуальным, чтобы дальшейшее переопределение было невозможно

> И если мы хотим работать единообразно(полиморфизм) с объектами этих классов через указатель на базовый класс - то методы должны быть виртуальными.

Это свойство сохраняется. При этом если указатель на базовый класс описывает объект "фигура шар синий", то при вызове через указатель функции "площадь" реально дёрнется функция "площадь" из класса "фигура шар". А вот если мы оставим слово "virtual" в классе "шар", то это означает, что какой-нибудь дятел может сделать класс "фигура шар серо-буро-малиновый" и в этом классе создать свою функцию "площадь" (которая ещё и может оказаться неправильной). Концептуально это не правильно, поскольку "площадь" является свойством понятия "конкретная фигура", но не понятия "конкретная фигура конкретного цвета". Поэтому в классах "конкретная фигура" ("фигура шар", "фигура куб") свойство "площадь" должно описываться без слова virtual. Это означает, что класс "фигура шар серо-буро-малиновый" ни при каких условиях не сможет переопределить виртуальную функцию "площадь".

При этом допустим у нас имеется некая загадочная фигура, площадь которой зависит от цвета. Тогда в классе "фигура загадочная" функция определяется с словом virtual. Ну или как вариант, если для каждого цвета площадь вычисляется по-разному, то функция "площадь" в классе "фигура загадочная" определяться не должна (чтобы не было возможность создать экземпляр класса "фигура загадочная"), и должна определяться в кажлом из дальнейших классов ("фигура загадочная синяя", "фигура загадочная зелёная" и т.п.)

> я поверю тебе на слово. я ещё не слишком силён в проектировании объектно-ориентированных систем

Просто это упоминалось скорее как пример для темы Отличие С от С++

Добавлено через 1 минуту
> Evg ты это имел ввиду?

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