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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Процедура обмена столбца и строки двухмерного массива http://www.cyberforum.ru/cpp-beginners/thread311319.html
Написать процедуру обмена столбца и строки двухмерного массива. С ее помощью поменять местами те строки и столбцы, первые элементы которых совпадают
C++ Движение фигур! #include "iostream" #include "windows.h" #include "math.h" #include "time.h" #include "iomanip" #include "cmath" #include "cstdlib" #include "ctime" #include "conio.h" http://www.cyberforum.ru/cpp-beginners/thread311318.html
C++ вычислить функцию
Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд в случаи, для заданной точности Е (Е=0.0001); у=сos(x), 0,1<x<1
C++ графика на с++
для чего служат g_driver,g_mode,g_error; прошу пояснить эти строки: initgraph(&g_driver,&g_mode,"C:\\BORLANDC\\BGI"); g_error=graphresult();
C++ Структура с данными о рейсах самолетов. http://www.cyberforum.ru/cpp-beginners/thread311294.html
Здравствуйте, объясните, пожалуйста, почему не работает программа: Создать массив структур с данными о рейсах. // lab8.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "conio.h" #include "iostream" using namespace std;
C++ Морской бой Visual С++ //Ship.h #include "stdafx.h" # ifndef SHIP_H # define SHIP_H #include <windows.h> #include <set> #include <map> подробнее

Показать сообщение отдельно
morgan4ik
3 / 3 / 0
Регистрация: 04.12.2009
Сообщений: 43
02.06.2011, 23:34     ООП виртуальные функции
ЗАДАНИЕ:

Создать абстрактный базовый класс 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)
{

}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru