Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2015, 18:08   #1
Даша1046
Пользователь
 
Регистрация: 15.01.2013
Сообщений: 15
По умолчанию Проблема с полиморфизмом

Здравствуйте, проблема такая, существует базовый класс создающий, заполняющий и выводящий матрицы, в нём есть виртуальная функция. Также есть два дочерних класса (операция сложения и операция умножения). в этих классах в виртуальной функции задаются сами операции (сложения и умножения соответственно).
Проблема в том, что при выводе, необходимо создавать матрицу для дочерних классов, и вызывать к нему функцию, то есть:
Код C++
Код:
Slojenie m1(3,3);
m1.vvod();
 m1.vivod();
Slojenie m2(3,3);
...
...
Slojenie m3(3,3);
.....
m3 = m1.MatrixOperation(m2);
и для вызова следующей операции
Код C++
Код:
Umnojenie m4(3,3);
....
...
Umnojenie m5(3,3);
...
Umnojenie m6(3,3);
....
m6 = m4.MatrixOperation(m5);
В результате получается ооочень громоздко, хотелось бы чтобы можно было задать из базового класса и уже с помощью каких-нибудь указателей вызвать операцию из нужного класса:
Код C++
Код:
Matrix m1(3,3);
    m1.Enter(); 
    m1.Show(); 
    Matrix m2(3,3);
    m2.Enter(); 
   m2.Show(); 
   Matrix m3(3,3);
m3 = m1.MatrixOperation(m2);
m4 =  m1.MatrixOperation(m2);
Подскажите, как можно так сделать? И ещё, вопрос по виртуальной функции, вот в базовом классе она задается как void, но в дочерних сделать так нельзя , так как она возвращает значение, и приходится менять с void MatrixOperation на (имя класса)MatrixOperation. Можно ли так делать?

Последний раз редактировалось Stilet; 02.06.2015 в 18:27.
Даша1046 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неблокирующий сокет Си проблема с закрытием, проблема с закрытием сокетов в цикле mnx_vol C/C++ Сетевое программирование 0 06.11.2012 13:57
Странности с полиморфизмом _Bers Общие вопросы C/C++ 4 03.02.2012 20:48
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37