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

Преобразование типов. Не конструктор не видит класс - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строквой литерал в двоичном представлении http://www.cyberforum.ru/cpp-beginners/thread888526.html
Добрый день. В учебнике есть задание: составить пользовательский тип который может вместить значение факториала числа 1000 с абсолютной точностью. На данном этапе мне необходимо считать со строки...
C++ Ошибка при работе с dll - невозможно преобразовать параметр пишу прогу, функции передаются с dll, выдает ошибку в строке HINSTANCE mydll = LoadLibrary ("my_dll.dll"); error C2664: LoadLibraryW: невозможно преобразовать параметр 1 из "const char " в... http://www.cyberforum.ru/cpp-beginners/thread888516.html
Ошибка в функции C++
#include <iostream> #include <conio.h> #include <Windows.h> #include <iomanip> using namespace std; char bufUkr; char *Ukr(const char* text) {
C++ Скомпилить код алгоритма симметричного шифрования
ребят, помогите плз, не могу скомпилить...не работает.. нужен экзэшник...https://code.google.com/p/cryptospecs/wiki/Symmetrical вот хорошие вроде бы коды..мне нужен один из E2, HPC, MACGUFFIN, Misty...
C++ Сделать что-бы строка бралась с файла (определить отношение количества гласных букв в предложении к согласным) http://www.cyberforum.ru/cpp-beginners/thread888498.html
Задание: Определить отношение количества гласных букв в предложении к согласным. код:#include <iostream> #include <conio.h> #include <string> #include <cctype> using namespace std; int main()...
C++ Зеркально поменять местами разряды младшего байта четных чисел, затем определить максимальное число в массиве и его индекс Помогите! Очень срочно! Нужно написать программу: 2. Зеркально поменять местами разряды младшего байта четных чисел, затем определить максимальное число в массиве и его индекс Желательно с... подробнее

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

Преобразование типов. Не конструктор не видит класс - C++

02.06.2013, 20:52. Просмотров 403. Ответов 5
Метки (Все метки)

Здравствуйте. В коде ниже, я хотел реализовать конвертер длин. Я создал 2 класса и при помощи 2 конструкторов хотел решить проблему преобразования типов. Если оставить один конструктор, то все работает, а с двумя выводит ошибку. Я начинающий и не могу додуматься как её можно исправить. Помогите решить эту проблему.

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
125
126
127
128
129
130
131
132
#include <iostream>
#include<locale.h>
using namespace std;
int vibor;
void menu();
class Metrik
{
private:
    float zn1;
public:
    Metrik():zn1(0) // конструктор без аргументов
    {}
    Metrik(Amerik);
    Metrik(float z):zn1(z)// конструктор с аргументами для передачи в них данных
    {}
    float izprivata1(){return zn1;}
    void display()
    {
        cout<<"Переведенное значение равно:  "<<zn1;
    }
};
 
 class Amerik
{
private:
    float zn2;
public:
    Amerik():zn2(0)
    {}
    Amerik(Metrik);
    Amerik(float z):zn2(z)
    {}
    void display()
    {
        cout<<"Переведенное значение равно:  "<<zn2;
    }
    float izprivata2(){return zn2;}
 
};
 
Metrik::Metrik (Amerik perevod2)
{
switch(vibor)
{
    case 74:
        {
        zn1= perevod2.izprivata2()*0.9144;
        } break;
    case 75:
        {
        zn1= perevod2.izprivata2()*0.0009144;
        } break;
    case 84:
        {
            zn1= perevod2.izprivata2()*1609;
        } break;
    case 85:
        {
            zn1= perevod2.izprivata2()*1.609;
        } break;
    }
}
 
 
 
Amerik::Amerik(Metrik perevod1)
{ switch(vibor)
{
case 47:
    {
        zn2= perevod1.izprivata1()*1.0936;
    } break;
case 48:
    {
    zn2= perevod1.izprivata1()*0.0006214;
    } break;
case 57:
    {
    zn2= perevod1.izprivata1()*1094;
    } break;
case 58:
    {
    zn2= perevod1.izprivata1()*0.6214;
    } break;
 
}
 
}
 
 
int main()
{ setlocale(LC_ALL,"RUS");
int a;
int n=1;
while(n!=0) {
 menu();
 cin>>vibor;
 cout<<"Введите значение для перевода: ";
 cin>>a;
 if (vibor==47||48||57||58)
 {
     Metrik perevod1(a);
 Amerik perevod2=perevod1;
 perevod2.display();
 }
 else
 {
     Amerik perevod2(a);
     Metrik perevod1=perevod2;
     perevod1.display();
 }
 cout<<"\nЕсли хотите звново конверитировать данные нажмите 1, если хотите выйти из программы, нажмите 0"<<endl;
 cin>>n;
}
exit(0);
}
void menu()
{
    cout<<"Здравствуйте. Вас приветствует конвертер длин."<<endl
            <<"Чтобы начать работу выберите из какой величины в какую вы будете конвертировать данные:"<<endl
            <<"1. Миллиметры."<<endl
            <<"2. Сантиметры."<<endl
            <<"3. Децеметры."<<endl
            <<"4. Метры."<<endl
            <<"5. Километры."<<endl
            <<"6. Дюймы."<<endl
            <<"7. Ярды."<<endl
            <<"8. Мили."<<endl
            <<"Пример: Вы хотите перевести миллиметры в ярды, для этого нужно ввести число 17. Где, 1 - это величина которую вы переводите, 7 -
 
величина в которую конвентируется величина 1. Далее можно вводить велечину."<<endl;
}
Ошибки:
Кликните здесь для просмотра всего текста
||=== фыфыф, Debug ===|
D:\Documents\Documents\фыфыф\main.cpp|14|error: field `Amerik' has incomplete type|
D:\Documents\Documents\фыфыф\main.cpp|43|error: prototype for `Metrik::Metrik(Amerik)' does not match any in class `Metrik'|
D:\Documents\Documents\фыфыф\main.cpp|8|error: candidates are: Metrik::Metrik(const Metrik&)|
D:\Documents\Documents\фыфыф\main.cpp|15|error: Metrik::Metrik(float)|
D:\Documents\Documents\фыфыф\main.cpp|12|error: Metrik::Metrik()|
D:\Documents\Documents\фыфыф\main.cpp||In function `int main()':|
D:\Documents\Documents\фыфыф\main.cpp|110|error: conversion from `Amerik' to non-scalar type `Metrik' requested|
D:\Documents\Documents\фыфыф\main.cpp||In function `void menu()':|
D:\Documents\Documents\фыфыф\main.cpp|130|error: missing terminating " character|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\226' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\229' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\235' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\232' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\247' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\232' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\237' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\224' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\226' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\234' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\238' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\242' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\238' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\240' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\243' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\254' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\234' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\238' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\237' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\226' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\229' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\237' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\242' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\232' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\240' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\243' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\229' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\242' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\241' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\255' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\226' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\229' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\235' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\232' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\247' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\232' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\237' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\224' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\196' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\224' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\235' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\229' in program|
D:\Documents\Documents\фыфыф\main.cpp|132|error: stray '\229' in program|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 0 warnings (0 minutes, 0 seconds) ===|

Заранее благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru