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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
avers_
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 19
#1

Ошибка преобразования класса - C++

17.11.2014, 07:48. Просмотров 190. Ответов 4
Метки нет (Все метки)

Добрый день!
Уважаемые, помогите пожалуйста найти ошибку.

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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <locale>
using namespace std;
class sotr{
private:
    char Famil[30], Imya[30], Otche[30], Dolj[30], obraz[30], zp[30], d_naim[30],d_uvol[30];
    char transport[30];
    char mesto_rab[30], dr_dolj[30];
    char vtor_rab[30]; char* p;
    bool rabota;
     // Ф.И.О., пол, должность, образование, заработная плата, дата найма, дата увольнения.
public:
    sotr(){
        strcpy_s (Famil,"not specified");
        strcpy_s  (Imya,"not specified");
        strcpy_s (Otche,"not specified");
        strcpy_s  (Dolj,"not specified");
        strcpy_s (obraz,"not specified");
        strcpy_s    (zp,"not specified");
        strcpy_s(d_naim,"not specified");
        strcpy_s(d_uvol,"not specified");
    }
    sotr(char* Fa, char* Im, char* Ot,char* Do, char* Ob, char* Zp,char* D_n,char* D_u){
        strcpy_s  (Famil,Fa);
        strcpy_s   (Imya,Im);
        strcpy_s  (Otche,Ot);
        strcpy_s   (Dolj,Do);
        strcpy_s  (obraz,Ob);
        strcpy_s     (zp,Zp);
        strcpy_s(d_naim,D_n);
        strcpy_s(d_uvol,D_u);
    }
    void cl_rab(char* vtor, bool rab){
        strcpy_s(vtor_rab, vtor);
        rabota=rab;
    }
    virtual void in(){
        cout        <<"Введите Фамилию сотрудника: "<<vtor_rab<<":";             
        cin                                  >>Famil;                           
        cout            <<"Введите Имя сотрудника: "<<vtor_rab<<":";  ;             
        cin                                   >>Imya;                           
        cout       <<"Введите Отчество сотрудника: "<<vtor_rab<<":";  ;             
        cin                                  >>Otche;                           
        cout      <<"Введите должность сотрудника: "<<vtor_rab<<":";  ;             
        cin                                   >>Dolj;                             
        cout    <<"Введите образование сотрудника: "<<vtor_rab<<":";  ;
        cin                                  >>obraz;
        cout            <<"Введите З\П сотрудника: "<<vtor_rab<<":";  ;
        cin                                     >>zp;
        cout     <<"Введите дату найма сотрудника: "<<vtor_rab<<":";  ;
        cin                                 >>d_naim;
        cout<<"Введите дату увольнения сотрудника: "<<vtor_rab<<":";  ;
        cin                                 >>d_uvol;
    }
   virtual void in(char* Fa, char* Im, char* Ot,char* Do, char* Ob, char* Zp,char* D_n,char* D_u){
        strcpy_s  (Famil,Fa);
        strcpy_s   (Imya,Im);
        strcpy_s  (Otche,Ot);
        strcpy_s   (Dolj,Do);
        strcpy_s  (obraz,Ob);
        strcpy_s     (zp,Zp);
        strcpy_s(d_naim,D_n);
        strcpy_s(d_uvol,D_u);
    }
   virtual void out(){
        cout<<"Фамилия сотрудника: "         <<Famil<<"\n";                         
        cout<<"Имя сотрудника: "              <<Imya<<"\n";                         
        cout<<"Отчество сотрудника: "        <<Otche<<"\n";                         
        cout<<"Должность сотрудника: "        <<Dolj<<"\n";                           
        cout<<"Образование сотрудника: "     <<obraz<<"\n";
        cout<<"З\П сотрудника: "                <<zp<<"\n";
        cout<<"Дата найма сотрудника: "     <<d_naim<<"\n"; 
        cout<<"Дата увольнения сотрудника: "<<d_uvol<<"\n";   
    }
   virtual void Vtor_in(){
        if (rabota){ 
        cout<<"Введите место второй работы сотрудника: ";               
        cin>>mesto_rab;                         
        cout<<"Введите должность на второй работе сотрудника: ";                
        cin>>dr_dolj;
        return;
        }
               else {
               cout<<"Ведите транспорт:";
               cin>>transport;
               return ;
        }
    }
   virtual char* vtor(){
        return (vtor_rab);
    }
    char* summ()
    {   
    
    }
};
class voditel: public sotr
{
public:
    voditel(){
        cl_rab("Водитель", 0);
    }
    voditel(char* Fa, char* Im, char* Ot,char* Do, char* Ob, char* Zp,char* D_n,char* D_u){
       sotr::in(Fa, Im, Ot, Do, Ob, Zp, D_n, D_u);
    }
};
class sovmest: public sotr{
public:
    sovmest(){
        cl_rab("Совместитель", 1);
    }
    sovmest(char* Fa, char* Im, char* Ot,char* Do, char* Ob, char* Zp,char* D_n,char* D_u){
       sotr::in(Fa, Im, Ot, Do, Ob, Zp, D_n, D_u);
    }
};
int main(void)
{
setlocale (LC_ALL, "Russian");
    int choice;
    sotr *p1;
    voditel c1;
    p1=&c1;
    p1->in("Петров", "Петр", "Петрович", "Водитель", "Среднее", "20000","17.11.2014", "Работает по настоящее время");
    sovmest h1;
    p1-&h1;
    p1->in();
    cout<<"Сотрудник(0 - Совместитель, 1 - Водитель): ";
    cin>>choice;
    if (choice) p1=&c1;
            else p1=&h1;
    do {
        cout<<"Выбран "<<p1->vtor()<<"\n";
        p1->out();
        p1->Vtor_in();
    }
         while (choice);
}
/*1. Разработать программу, описывающую систему, приведенную в варианте, через наследование,
где один класс является родителем двух других классов. Определить несколько конструкторов
для каждого класса. Отслеживать корректность данных классов.
2. Изменить предыдущую программу, добавив в родительский класс виртуальные методы:
1) следующие из описания и функций системы,
2) методы позволяющие занести все необходимые данные в объект из стандартного ввода,
3) методы, предоставляющие полную информацию об объекте в стандартный вывод.
 */
Список ошибок
1>------ Построение начато: проект: laba4_v2, Конфигурация: Debug Win32 ------
1> laba1_v2.cpp
1>c:\users\администратор\documents\visual studio 2012\projects\laba4_v2\laba4_v2\laba1_v2.cpp(50): warning C4129: :
1>c:\users\администратор\documents\visual studio 2012\projects\laba4_v2\laba4_v2\laba1_v2.cpp(73): warning C4129: :
1>c:\users\администратор\documents\visual studio 2012\projects\laba4_v2\laba4_v2\laba1_v2.cpp(127): error C2440: -: невозможно преобразовать "sovmest *" в "sotr *"
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2014, 07:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка преобразования класса (C++):

Перегрузка преобразования класса-строка в тип string (и наоборот) - C++
Помогите, а то не могу разобраться:(( перегрузка преобразования класса-строка в тип string (и наоборот). #include &quot;stdafx.h&quot; ...

Ошибка преобразования - C++
Вот мой код. В общем в конце выбивает &quot;error C2664: kasat: невозможно преобразовать параметр 5 из &quot;double (__cdecl *)(double,double)&quot;...

Ошибка преобразования типа - C++
Задача состояла в следующем: реализация алгоритма проверки n на простоту, используя малую теорему Ферма. В силу недостаточного опыта и...

ошибка преобразования char - C++
помогите найти ошибку(или исправить): #include&lt;iostream&gt; #include&lt;string.h&gt; #include&lt;conio.h&gt; #include&lt;stdio.h&gt; ...

Ошибка преобразования типов - C++
В чем именно я ошибся,если код ошибки #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;string&gt; #include &lt;ctype.h&gt; using...

Удаление экземпляра класса в функции самого класса (Ошибка при отладке) - C++
Допустим, у нас есть класс Buffer, который хранит в себе указатель на класс некоторой матрицы и количество этих указателей refcounter ...

4
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3969 / 2193 / 553
Регистрация: 18.10.2014
Сообщений: 3,802
17.11.2014, 08:13 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от avers_ Посмотреть сообщение
помогите пожалуйста найти ошибку.
Что значит "помогите найти"? Компилятор же уже нашел и ткнул прямо в ошибку.

Что это?

C++
1
p1-&h1;
1
avers_
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 19
17.11.2014, 08:22  [ТС] #3
Извиняюсь, ночь с кодом дала о себе знать)
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3969 / 2193 / 553
Регистрация: 18.10.2014
Сообщений: 3,802
17.11.2014, 08:23 #4
Цитата Сообщение от avers_ Посмотреть сообщение
аналогично
Что значит "аналогично"? Вы прикалываетесь? Оператор вычитания '-' и оператор присваивания '=' не имеют ничего "аналогичного" между собой.
1
avers_
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 19
17.11.2014, 08:25  [ТС] #5
И еще один вопрос, в данном коде необходимо реализовать сложение З\П обоих сотрудников.
Не как не могу понять, как это сделать.
0
17.11.2014, 08:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2014, 08:25
Привет! Вот еще темы с ответами:

Ошибка при вызове метода класса в методе другого класса - C++
Господа программисты, возникла такая проблема. При вызове метода класса в методе другого класса выходит такая ошибка &quot; нестандартный...

Ошибка при работе с объектом класса в конструкторе другого класса - C++
Имеется данный код: https://github.com/ubelian/glgame/tree/master/glgame В файле Food.cpp в конструкторе класса Food::Food() на 19...

Ошибка компиляции (преобразование объекта класса в объект другого класса) - C++
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует доллары США в старые Британские фунты. Но...

Ошибка в функции преобразования Фурье - C++
Здравствуйте! Делаю гитарный тюнер, и застряла на моменте определения частоты уже снятого с микрофона звука. Звук с микрофона снимается в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.