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

Разработать конструктор, деструктор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Одномерный массив. Найти количество элементов больше заданного. Найти произведение элементов за максимумом http://www.cyberforum.ru/cpp-beginners/thread757297.html
Задача 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, больших C; 2) произведение элементов массива, расположенных после максимального по модулю элемента. Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элемен-ты, а потом – все положительные (элементы, равные 0, считать положительными) и распечатать...
C++ Задан двумерный массив N x M. Найти в нем подмассив 3 х 3, сумма элементов которого максимальна Задан двумерный массив N x M. Найти в нем подмассив 3 х 3, сумма элементов которого максимальна. http://www.cyberforum.ru/cpp-beginners/thread757290.html
C++ Перегрузить для класса оператор ==
немогу написать продолжение кода... нужно написать : перегрузить для данного класса оператор ==, вычисляющий пробег автомобиля с максимально заполненным бензобаком. вот сам код: #include "StdAfx.h" #include <conio.h> #include <string>
Ошибки при использовании stringstream C++
Текст программы: #include <stdio.h> #include <iostream> #include <string.h> using namespace std; int main() {
C++ Двусвязный список(добавить метод сортировки списка) http://www.cyberforum.ru/cpp-beginners/thread757256.html
Постановка задачи. Разработать шаблон класса «Двусвязный список», включающий в себя необходимый ми-нимум методов, обеспечивающий полноценное функционирование объектов указанного класса при их использовании в программе, а именно: 1) конструкторы (по умолчанию, с параметрами, копирования); 2) деструктор; 3) добавление элемента в начало, конец, заданную (по номеру) позицию списка; 4) удаление...
C++ Квадрат из звездочек с цифрой внутри Очередная задачка) Первая построить квадрат из звездочек по периметру. С этим мы справились. Теперь же нужно в центр этого квадрата вставить цифру, не важно какую, ну скажем 12. Использовать можно только for иif. Вот мой код программы для самого квадрата, какой код добавить чтобы цифру вставить? #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int... подробнее

Показать сообщение отдельно
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
09.01.2013, 23:51     Разработать конструктор, деструктор
где-то был класс дробей, найду скину.

Добавлено через 9 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#ifndef _DROB_H
#define _DROB_H
#include <string>
#include <iostream>
#include <sstream>
 
using namespace std;
class TRational{
    long chis,zn;
    void Reduce();
    int NOD(long x, long y);
public:
    TRational(const long &c=0, const long &z=1);
    TRational(const int &c, const int &z);
    TRational(const double &r);
    string toString();
    TRational Add(const TRational &r);
    TRational operator +(const TRational &r);
    TRational operator +(const long &r);
    TRational& operator +=(const TRational &r);
 
};
#endif  
 
int TRational::NOD(long x, long y){
if(y==0)return x;else return NOD(y , x%y);
}
void TRational::Reduce(){
long t;
t = abs(NOD (chis,zn));
chis /= t;
zn /= t;
}
 
TRational::TRational( const long &c,const long &z):chis(c),zn(z){
    
    if (zn==0) {cout<<"Error - divide by zero"; exit ;}
    Reduce();
    }
TRational::TRational(const int &c, const int &z):chis(c),zn(z){
    if(zn==0){cout<<"Error - divide by zero"; exit ;}
    Reduce();
    }
TRational::TRational( const double &r){
    double val1, val2;
    val1 = r*10000000L; val2 =r* 1000000L;
    chis = long(val1 -val2);
    zn = 90000000L;
    Reduce();
}
string  TRational::toString() const{
stringstream ss (stringstream::in | stringstream::out);
string str;
  ss << chis<<'/'<<zn;
  ss >> str;
  return str;
}
TRational TRational::Add(const TRational &r){
    TRational t =*this;
    
    t.chis = t.chis * r.zn + r.chis * t.zn;
    t.zn *=r.zn;
    t.Reduce();
    return t;
}
TRational TRational::operator +(const TRational &r)
{
    TRational t =*this;
    
    t.chis = t.chis * r.zn + r.chis * t.zn;
    t.zn *=r.zn;
    t.Reduce();
    return t;
}
TRational& TRational::operator +=(const TRational &r){
    
    chis = chis * r.zn + r.chis * zn;
    zn *=r.zn;
    Reduce();
    return *this;
}
TRational TRational::operator +(const long &r){
    TRational t(r);
    t += *this;
    t.Reduce();
    return t;
}
TRational& TRational::operator ++(){
    
    *this=*this+1;
    Reduce();
    return *this;
}
TRational TRational::operator ++(int){
    TRational t;
    t=*this;
    *this=*this+1;
    Reduce();
    return t;
}
ostream& operator<<(ostream &t,const TRational &r){
    t<<r.toString();
    return t;
}
Класс дроби, изучайте.
 
Текущее время: 21:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru