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

Как перегрузить оператор в виртуальном классе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгебраические дополнения http://www.cyberforum.ru/cpp-beginners/thread95441.html
Здравствуйте. Возникла такая проблема, как нахождение обратной матрицы. Но необходимо её найти методом, который к сожалению я не где не встретил:( В методе необходимо найти определитель матрицы, найти алгебраические дополнения, транспонировать матрицу с получившимися алгебраическими дополнениями и разделить полученную матрицу на определитель. Матрица может быть максимум 5x5; Помогите...
C++ Создание проекта Hello, World! скачал десять компиляторов,нужен просто компилятро для с и с++ две кнопки вкл и выкл. типа блокнота. Есть такой?(и чтоб библиотеки дописывать докопировать не надо было) заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread95438.html
C++ динамичекий двумерный мас type *mass
здрасти товарищи кодеры, нужны вашы знания в созданиях двумерного массива, но есть условие, создавать не как обычно type **mass ,а работая через type *mass гуглил гуглил не выгуглил, примеры уж больно не завершонные кто может киньте код на создания такого массива и записи в него нескольких элементов
C++ Параметры функции
Как передать в функцию в качестве параметра масив ???
C++ Перегрузка операторов с участием массивов http://www.cyberforum.ru/cpp-beginners/thread95417.html
Всем привет! Люди добрые, подскажите пожалста, как по кошерному вызвать оператор. Ситуация следующая: Есть массив MassThing mass; Есть класс Thing { ... AnsiString name;
C++ По заданному году и номеру месяца определить количество дней в этом месяце Помогите. Не могу решить. Составить программу для решения текстовой задачи с помощью оператора выбора. Составить программу, которая по заданным году и номеру месяца определяет количество дней в этом месяце. подробнее

Показать сообщение отдельно
samba777
1 / 1 / 0
Регистрация: 13.02.2010
Сообщений: 8
14.02.2010, 10:01     Как перегрузить оператор в виртуальном классе
Помогите пожалста разобраться с перегрузкой операторов в абстрактных классах!!!!

Есть чисто виртуальный класс физических величин
C++
1
2
3
4
5
6
7
8
Fiz_value
{
private:
float value;
public:
Fiz_value(){value=0.0;...}
virtual void func1()=0;
virtual void func2()=0;

// В нём должны быть перегружены операторы:

C++
1
2
3
4
5
6
7
8
9
10
11
Fiz_value * operator+(Fiz_value *f)
{
  // Хочу сделать так
 Fiz_value *tmp;
 tmp->value = this->value + f->value;   // Но т.к. класс абстрактный, то память выделяется только под 
                                                      // указатель, поэтому в этой строчке вылазит ошибка
                                                      // что я лезу в чужую область памяти(tmp=NULL)
 return tmp;
}
 
}
Есть наследники этого класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Length : public Fiz_value
{
 void func1(){...}
 void func2(){...}
}
 
Volume : public Fiz_value
{
 void func1(){...}
 void func2(){...}
}
 
 
 class MassFV
   {
     private:
              int Len;
              Fiz_value** Arr;
    .....
   }
А в программе надо сделать что-то типа:
C++
1
2
3
4
5
6
7
int main()
{
  MassFV massfv(20); // массив объектов физических величин
 
  Fiz_value t =  massfv[combobox1->Itemindex] + massfv[combobox2->Itemindex];
  MyPrint t;
}
Подскажите пожалста кто чем сможет, а то я весь моск уже сломал !!!

Добавлено через 5 часов 1 минуту
Если кому интересно, то нашёл такой выход, хотя не то что хотелось.
Приходится помещать сумму 2-х величин в одну из них:

Fiz_value * operator+(Fiz_value *f)
{
value = value + f->value;
return this;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru