Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Not Afraid
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 68
#1

унаслодовать класс - C++

24.11.2013, 20:16. Просмотров 172. Ответов 0
Метки нет (Все метки)

Помогите унаследовать класс
у меня есть класс дробь нужно утворить из него класс матрица дробуй вот класс:
#include <iostream>
using namespace std;

class drob
{
int p;
int q;
public:
drob();
drob(int , int );
~drob();
drob& operator=(const drob&);
friend ostream& operator«(ostream&, drob);
friend istream& operator»(istream&, drob&);
friend drob operator-(const drob&, const drob&);
friend drob operator+(const drob& d1, const drob& d2);
drob operator*(drob d1);
drob operator/(drob d1);
bool operator==(const drob& d1);
bool operator!=(const drob& d1);
bool operator<(const drob& d1);
bool operator>(const drob& d1);
bool operator<=(const drob& d1);
bool operator>=(const drob& d1);
drob stepen(int a);
drob skor();
void input();
void output();
};
drob::drob(int x, int y)
{
p = x;
q = y;
}
drob::~drob()
{
cout « "delete object" « endl;
}
drob& drob::operator=(const drob& v)
{
p = v.p;
q = v.q;
return *this;
}

drob::drob()
{
p = q = 0;
cout « "drob initialized. \n";
}
ostream& operator«(ostream& os, drob v)
{
return os « "p=" « v.p « "\t"« "q=" « v.q « endl;
}
istream& operator»(istream& is, drob& v)
{
cout « "Drib p/q, vvedit p=";
is » v.p;
cout « "vvedit q=";
is » v.q;
return is;
}
drob operator-(const drob& d1, const drob& d2)
{
drob dc;
dc.p = (d1.p*d2.q) - (d2.p*d1.q);
dc.q = d1.q*d2.q;
return dc;
}
drob operator+(const drob& d1, const drob& d2)
{
drob x;
x.p = (d1.p*d2.q) + (d2.p*d1.q);
x.q = d1.q*d2.q;
return x;
}

drob drob::operator*(drob d1)
{
drob fg=*this;
fg.p *= d1.p;
fg.q *= d1.q;
return fg;
}
drob drob::operator/(drob d1)
{
drob v=*this;
v.p *= d1.q;
v.q *= d1.p;
return v;
}
bool drob::operator==(const drob& d1)
{
drob fv;
if (d1.p == fv.p && d1.q == fv.q)
return true;
return false;
}
bool drob::operator!=(const drob& d1)
{
drob fv;
if (d1.p != fv.p && d1.q == fv.q || d1.p == fv.p && d1.q != fv.q || d1.p != fv.p && d1.q != fv.q)
return true;
return false;
}
bool drob::operator<(const drob& d1)
{
drob jn;
if (jn.p*d1.q < jn.q*d1.p)
return true;
return false;
}
bool drob::operator>(const drob& d1)
{
drob jn;
if (jn.p*d1.q > jn.q*d1.p)
return true;
return false;
}
bool drob::operator<=(const drob& d1)
{
drob jn;
if (jn.p*d1.q < jn.q*d1.p || jn.p*d1.q == jn.q*d1.p)
return true;
return false;
}
bool drob::operator>=(const drob& d1)
{
drob jn;
if (jn.p*d1.q > jn.q*d1.p || jn.p*d1.q == jn.q*d1.p)
return true;
return false;
}
drob drob::stepen(int a)
{
drob hj=*this;
drob j = *this;
for (int i = 0; i < a-1; i++)
{
hj.p *= j.p;
hj.q *= j.q;
}
return hj;
}
drob drob::skor()
{
drob nm=*this;
if (nm.p > nm.q && nm.p%nm.q == 0)
{
nm.p /= nm.q;
nm.q = 1;
return nm;
}
else
{
cout « "drib neskorotniy" « endl;
}
if (this->p < this->q && this->q%this->p == 0)
{
this->q /= nm.p;
this->p = 1;
return *this;
}
else
{
cout « "drib neskorotniy" « endl;
}
}
void drob::input()
{
cout « "vvedit p:" « endl;
cin » this->p;
cout « "vvedit q:" « endl;
cin » this->q;
}
void drob::output()
{
cout « "p=" « this->p « "\t" « "q=" « this->q « endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2013, 20:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос унаслодовать класс (C++):

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами - C++
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как...

Отдельно класс данных, класс формул и главный класс - C++
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это подход к созданию приложений :...

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число" - C++
Ткма работы создать класс pair (пара чисел); определить метод перемножения полей и операцию сложения пар (a,b)+(c,d) =(a+b,c+d)...

Класс, производный класс, паблик-класс - C++
Задание: Создать класс колесо, которое имеет радиус. Определить конструкторы и метод доступа. Создать класс машин, содержащий класс колесо....

Создать класс “Автомагазин”, состоящей из класса ”Марки машин”. Класс “Автомагазин ”:название магазина, адрес, телефон. Класс “ Марки машин ”: марка - C++
Создать класс “Автомагазин”, состоящей из класса ”Марки машин”. Класс “Автомагазин ”:название магазина, адрес, телефон. Класс “ Марки...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2013, 20:16
Привет! Вот еще темы с ответами:

Абстрактный класс CGraphicsObject, его наследник - базовый класс CPoint, и класс - наследник от CPoint - C++
Всем доброй ночи! Очень нужна помощь и по мере возможности разъяснения на темы: абстрактный класс в задании(что он из себя представляет и...

Реализовать класс Goods используя для представления цены класс Money - C++
Реализовать класс Goods (пункт 1 ), используя для представления цены класс Money с пункта 2 Реализовать метод уценки товара, уменьшая цену...

Иерархия геометрических объектов: клас точка->класс квадрат->класс прямоугольник - C++
Иерархия геометрических объектов: класс точка-&gt;класс квадрат-&gt;класс прямоугольник. Построить эту иерархию наследованием.. Прошу помочь -...

Класс домов и класс улиц для учета поступлений квартплаты. Массив - C++
Задание: вырезано Файл StdAfx.h #pragma once #include &quot;targetver.h&quot; #include &lt;stdio.h&gt;


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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