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

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

Восстановить пароль Регистрация
 
IvanInanovich
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 113
15.04.2013, 16:13     Преобразование пользовательских типов #1
Добрый день.
Суть проблемы такова. Есть 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 16:13     Преобразование пользовательских типов
Посмотрите здесь:

C++ Обработка исключений в классах для пользовательских типов
преобразование пользовательских классов C++
Преобразование типов C++
Приведение пользовательских типов C++
C++ Создание пользовательских типов
C++ Преобразование пользовательских типов
Шаблон для пользовательских типов данных C++
Возможно ли переопределение операторов для пользовательских типов? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
15.04.2013, 16:22     Преобразование пользовательских типов #2
класс sterling еще не определен, а Вы его уже используете.
IvanInanovich
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 113
15.04.2013, 16:29  [ТС]     Преобразование пользовательских типов #3
Благодарю)
Yandex
Объявления
15.04.2013, 16:29     Преобразование пользовательских типов
Ответ Создать тему
Опции темы

Текущее время: 23:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru