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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
morgan4ik
3 / 3 / 0
Регистрация: 04.12.2009
Сообщений: 43
#1

ООП виртуальные функции - C++

02.06.2011, 23:34. Просмотров 1883. Ответов 3
Метки нет (Все метки)

ЗАДАНИЕ:

Создать абстрактный базовый класс Pair с виртуальными арифметическими операциями. Создать производные классы Money и Complex.
Класс Money для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа unsigned char — для копеек. Реализовать сложение, вычитание, умножение на дробное число.
Комплексное число представляются парой действительных чисел (а, b), где а — действительная часть, b — мнимая часть. Арифметические операции класса Complex:
• сложение (а, b) + (с, d) = (а + b, с + d);
• вычитание (а, b) - (с, d) = (а - b, с - d);
• умножение (a, b) * (с, d) = (ас - bd, ad + bс);
• деление (а, b) / (с, d) = (ас + bd, bс - ad) / (с2 + d2).


проблема в том что когда начинаешь в классе Complex писать void complex::add(complex obj) на слово complex выделяет и пишет такую строчку "complex is not allowed"

помогите пожалуйста кто знает!!!вот код!!!

#ifndef PAIR_H
#define PAIR_H
class pair
{
protected:
long double a;
public:
pair(long double);
virtual void add(complex)=0;
virtual void sub(pair)=0;
virtual void mul(pair)=0;
virtual void div(pair)=0;
virtual void read()=0;
virtual void display()=0;
}
#endif

#include <iostream>
#include "pair.h"
//using namespace std;

pair::pair(long double al)
{
std::cout<<"vuzvan konstr class PAIR"<<std::endl;
a=al;
}

#ifndef COMPLEX_H
#define COMPLEX_H
#include "pair.h"
class complex:public pair
{
private:
long double b;
public:
complex(long double,long double);
void add(complex);
void sub(complex);
void mul(complex);
void div(complex);
void read();
void display();
}
#endif

#include <iostream>
#include "complex.h"
#include "pair.h"
using namespace std;

complex::complex(long double al,long double bl):pair(al)
{
b=bl;
}

void complex::read()
{
cin>>a;
cin>>b;
}

void complex::display()
{
cout<<"a="<<a<<" b="<<b<<endl;
}

void complex::add(complex obj)
{

}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 23:34     ООП виртуальные функции
Посмотрите здесь:

Виртуальные функции - C++
Какие происходят изменения, когда в классе объявляем одну или несколько функций виртуальными? Вот, например, если в SuperClass перед...

виртуальные функции - C++
Помогите пожалуйста, создать абстрактный класс Shape с двумя чисто виртуальными методами Area() и Print(). Определить производные классы ...

Виртуальные функции - C++
Не работает код. Проблема в виртуальной функции. Как это можно исправить? #include &lt;iostream&gt; class Convert { protected: ...

Виртуальные функции - C++
Объясните пожалуйста зачем нужны чисто виртуальные функции?

Виртуальные функции - C++
Составить программу в С Buildere. Объявить базовый класс с именем person {имя, возраст, группа}. Определить функцию show (), которая...

Виртуальные функции - C++
Помогите пожалуйста написать задачу, никак не могу разобраться. Создайте класс Matr, определите в нем виртуальную функцию-член...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
02.06.2011, 23:38     ООП виртуальные функции #2
точку с запятой после определения класса
morgan4ik
3 / 3 / 0
Регистрация: 04.12.2009
Сообщений: 43
03.06.2011, 00:01  [ТС]     ООП виртуальные функции #3
с точкой запятой та же сама ошибка
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2011, 01:18     ООП виртуальные функции
Еще ссылки по теме:

виртуальные функции - C++
Помогите плиз с вертуальными функциями. Некак немогу понят вот эту задачу: переопределяемая виртуальная функция находит: ...

Виртуальные функции - C++
Доброго времени суток. Есть задание. Создать абстрактный класс Function (функция) с виртуальными методами вычисления значения функции...

виртуальные функции - C++
Всем привет, помогите с исправлением функции #include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; enum...

виртуальные функции - C++
Здравствуйте.Перечитал различные статьи,но не могу до конца вникнуть в смысл использования виртуальных функций.Для взаимного понимания...

Виртуальные функции - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; using namespace std; class Array { ...

виртуальные функции - C++
интересует 2 вопроса:1)Какими элементами могут отличаться экземпляры одной виртуальной функции, находящиеся в разных производных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ValeryLaptev
Эксперт С++
1039 / 818 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
03.06.2011, 01:18     ООП виртуальные функции #4
Цитата Сообщение от morgan4ik Посмотреть сообщение
с точкой запятой та же сама ошибка
А почему у тебя в классе Pair есть функция, работающая с complex?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class pair
{
protected:
long double a;
public:
pair(long double);
virtual void add(complex)=0;
virtual void sub(pair)=0;
virtual void mul(pair)=0;
virtual void div(pair)=0;
virtual void read()=0;
virtual void display()=0;
}
Yandex
Объявления
03.06.2011, 01:18     ООП виртуальные функции
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru