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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Строквой литерал в двоичном представлении http://www.cyberforum.ru/cpp-beginners/thread888526.html
Добрый день. В учебнике есть задание: составить пользовательский тип который может вместить значение факториала числа 1000 с абсолютной точностью. На данном этапе мне необходимо считать со строки значение и перевести его в бинарное представление (т.е. инициализировать мой тип данных). Как это сделать? Перевести в целочисленный аргумент с последующим делением на 2 и взятием остатка, как мне...
C++ Ошибка при работе с dll - невозможно преобразовать параметр пишу прогу, функции передаются с dll, выдает ошибку в строке HINSTANCE mydll = LoadLibrary ("my_dll.dll"); error C2664: LoadLibraryW: невозможно преобразовать параметр 1 из "const char " в "LPCWSTR" почему ругается?( в 1 раз с dll работаю( 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++ Сделать что-бы строка бралась с файла (определить отношение количества гласных букв в предложении к согласным)
Задание: Определить отношение количества гласных букв в предложении к согласным. код:#include <iostream> #include <conio.h> #include <string> #include <cctype> using namespace std; int main() { string a;
C++ Зеркально поменять местами разряды младшего байта четных чисел, затем определить максимальное число в массиве и его индекс http://www.cyberforum.ru/cpp-beginners/thread888494.html
Помогите! Очень срочно! Нужно написать программу: 2. Зеркально поменять местами разряды младшего байта четных чисел, затем определить максимальное число в массиве и его индекс Желательно с пояснениями!!))) Заранее Спасибо)
C++ Матрица из разных типов хочу создать клас Matrix елементы обьектов которого могли бы быть разных типов. была идея создать клас Cell и определить его как шаблонный клас, но тогда и в класе матрици надо будет задавать тип, а я не знаю какой тип будет у каждой отдельной ячейки подскажите пожалуйста в какую сторону двигаться подробнее

Показать сообщение отдельно
Aziikus
 Аватар для Aziikus
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 27
03.06.2013, 17:42  [ТС]     Преобразование типов. Не конструктор не видит класс
Проблему решил. Спасибо что откликнулись. If в коде один и он находится в main. Левые значения выводились, как я понял, из за того что zn1 либо zn2 не использовались и из за ошибки в условии, метод void display() выводил на экран и значение zn1 первого класса и zn2 второго класса.
Кому интересно вот рабочий код:

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
133
#include <iostream>
#include<locale.h>
using namespace std;
int vibor;
void menu();
class Amerik;
class Metrik
{
private:
    float zn1;
public:
    Metrik():zn1(0) // конструктор без аргументов
    {}
    Metrik(Amerik);
    Metrik(float z):zn1(z)// конструктор с аргументами для передачи в них данных
    {}
    float izprivata1(){return zn1;}
    void display1()
    {
        cout<<"[1]Переведенное значение равно:  "<<zn1;
    }
};
 
 class Amerik
{
private:
    float zn2;
public:
    Amerik():zn2(0)
    {}
    Amerik(Metrik);
    Amerik(float z):zn2(z)
    {}
    void display2()
    {
        cout<<"[2]Переведенное значение равно:  "<<zn2;
    }
    float izprivata2(){return zn2;}
 
};
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;
 
}
 
}
 
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;
    }
}
 
 
 
 
 
 
int main()
{ setlocale(LC_ALL,"RUS");
int a;
int n=1;
while(n!=0) {
 menu();
 cin>>vibor;
 cout<<"Введите значение для перевода: ";
 cin>>a;
 if (vibor==47|| vibor==48||vibor==57||vibor==58) // тут была ошибка из за которой запускался void display() два раза
 {                                                                   // для первого класса и для второго класса. 
     Metrik perevod1(a);                                      // Пришлось делать другое условие.
 Amerik perevod2=perevod1;
 perevod2.display2();
 }
if (vibor==74||vibor==84||vibor==75||vibor==85)
 {
     Amerik perevod2(a);
     Metrik perevod1=perevod2;
     perevod1.display1();
 }
 cout<<"\nЕсли хотите звново конверитировать данные нажмите 1, если хотите выйти из программы, нажмите 0"<<endl;
 cin>>n;
 system("cls");
}
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;
}
 
Текущее время: 04:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru