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

Преобразование пользовательских типов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в функции http://www.cyberforum.ru/cpp-beginners/thread838513.html
Код: #include <iostream> #include <conio.h> using namespace std; const int size = 10; int max_maxi_finder(int *arr, int size, int& max, int& maxi) { for (int i = 0; i < size; i++)
C++ Повернуть матрицу на 90, 180, 270 градусов Дана квадратная матрица порядка M. Повернуть ее на 90, 180 и 270 градусов в положительном направлении. Нашел вот такой вот код: #include <iostream.h> #include <conio.h> using namespace std; int main() { const int row_count=4; http://www.cyberforum.ru/cpp-beginners/thread838498.html
Нарисовать окошко в котором в углу будет "пушка" которая типа будет стрелять C++
Помогите создать мини програмку: что требуется - нужно с помощью модуля для роботы с графикой нарисовать окошко в котором в углу будет "пушка" которая типа будет стрелять, в чем смысл: мы задает массу ядра (например 1 кг), задаем силу с которой будет стрелять пушка (например 10 Н ) и показываем траекторию полета ядра которое упадет куда-там, в чем еще фишка когда мы напишем что (например сила...
Сортировка списка C++
Сортировка списка методом вставок void sort(list<int> &L) { int temp; list<int>::iterator i, j; for ( i = L.begin(), ++i; i != L.end(); ++i ) {
C++ Отношения между классами и объектами http://www.cyberforum.ru/cpp-beginners/thread838482.html
Для каждого индивидуального варианта необходимо создать консольную программу на С++, реализующую отношение ассоциации (агрегации или композиции) между классами и объектами. Класс «КОМНАТА», содержит закрытые поля: сведения о метраже, высоте потолков и количестве окон и метод подсчета площади комнаты. Класс «КВАРТИРА», содержит закрытые поля: номер этажа, массив объектов класса «КОМНАТА», метод...
C++ Строка: напечатать слова, которые удовлетворяют следующему свойству: в слове нет повторяющихся букв Доброго времени суток. помогите написать программу в С++. Дан текст. Напечатать те слова, которые удовлетворяют следующему свойству: в слове нет повторяющихся букв. подробнее

Показать сообщение отдельно
IvanInanovich
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 113

Преобразование пользовательских типов - C++

15.04.2013, 16:13. Просмотров 287. Ответов 2
Метки (Все метки)

Добрый день.
Суть проблемы такова. Есть 2 класса. Преобразовать через оператор получается. А через конструктор нет.
Причем ошибка довольно таки глупа 2012\MyFistProject\main.cpp|14|error: expected ')' before 's1'|. Якобы не хватает скобки перед переменной. Возможно я чего-то не вижу?
3й конструктор в первом классе (bMoney).

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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include<iostream>
 
 
using namespace std;
 
class bMoney
{
private:
    long double money;
public:
    bMoney() : money(0){}
    bMoney(long double i):money(i){}
 
    bMoney(sterling s1)
    {
        long double m = s1.paunds * 240 + s1.shilings * 12 + s1.pence;
        money = m / 240 * 50;
    }
    void getmoney()
    {
        cout << "Vvedite koluchestvo deneg: "; cin >> money;
    }
    void putmoney() const
    {
        cout << "\nKolichestvo deneg : " << money << endl;
    }
};
 
 
 
 class sterling
{
private:
    long pounds;
    int shilings;
    int pence;
 
 public:
 
    sterling():pounds(0),shilings(0),pence(0){}
    sterling(double d)
    {
 
        pounds = d;
        shilings = (d - pounds)*20;
        pence = (((d - pounds) *20)  - shilings) * 12;
    }
    sterling(long p,int s,int pe):pounds(p),shilings(s),pence(pe){}
 
    void getsterling()
    {
        cout << " Vvedite pounds,shilings,pence :"; cin >> pounds >> shilings >> pence;
    }
 
    void putsterlings()
    {
        cout << 'J' << pounds << '.' << shilings << '.' << pence << endl;
    }
 
    sterling operator+(sterling s2)
    {
        double total = ((pounds + s2.pounds) * 240) + ((shilings+s2.shilings)* 12) + pence + s2.pence;
        return sterling(total/240);
    }
 
    sterling operator-(sterling s2)
    {
        double total1, total2;
 
        total1 = pounds*240 + shilings*12 + pence;
        total2 = s2.pounds*240 + s2.shilings*12 + s2.pence;
        double total3 = total1 - total2;
        return sterling(total3/240);
    }
 
    sterling operator*(double doub)
    {
        sterling s2 = doub;
         long    po = s2.pounds * pounds;
         int     sh = s2.shilings * shilings;
         int     pe = s2.pence * pence;
        double i = (po * 240) + (sh * 12) + pe;
 
        return sterling(i/240);
    }
 
    sterling operator/(sterling s2)
    {
        return sterling(pounds/s2.pounds,shilings/s2.shilings, pence/ s2.pence);
    }
 
    sterling operator/(double b)
    {
       sterling s2 = b;
 
     return sterling(pounds/s2.pounds,shilings/s2.shilings, pence/ s2.pence);
 
    }
 
 
 
     operator bMoney()
    {
 
        long double s = pounds * 240 + shilings * 12 + pence;
        return bMoney(s/240 * 50);
 
    }
};
 
 
int main()
{
 
 
bMoney m1;
sterling s1(8,15,11);
 
m1 = s1;
 
m1.putmoney();
 
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru