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

Ошибка в книге или я что то не понимаю ? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ История, нужны идеи без религии http://www.cyberforum.ru/cpp-beginners/thread966847.html
Расскажу свою историю, может я и не прав, но так было у меня. Первое GUI с которого начал, это Qt, все примерчики не плохо пишутся, довольно интересно, с графикой все просто. Но как только нужно что то по сложнее начинаются баги, баги и баги, баги, причём баги когда функция возврашает 932409324 коды ошибок, то код ошибки 2 и ещё море других, не связанных со мной не коим образом, постепенно моя...
C++ Patient 67% Извините форумчане, за то что обращаюсь к вам. Мне действительно нужна помощь доделать проект, а именно сортировку. УСЛОВИЕ: Patient: Фамилия, Имя, Отчество, Адрес, Номер медицинской карты, Диагноз. Создать массив объектов. Вывести: а) список пациентов, имеющих данный диагноз; б) список пациентов, номер медицинской карты которых находится в заданном интервале. (Методом сортировка... http://www.cyberforum.ru/cpp-beginners/thread966841.html
MOSES C++
Подскажите где скачать исходники программы MOSES: средство для статистического перевода текстов? http://suse.me/soft/moses/all/
C++ Не работает код
# include <iostream> # include <math.h> using namespace std; double Func( double s, double b); void main () { int s, b, c=0; try { while(cin>>s>>b)
C++ Вычислить: пример в доке! http://www.cyberforum.ru/cpp-beginners/thread966829.html
Вычислить: пример в доке! Пожалуйста помогите сделать, всё уже перепробывал не получается! Заранее огромное спасибо!
C++ Вывод чисел от 1 до N без использования while, for Здравствуйте! Помогите пожалуйста, не могу разобраться в чем дело. На выходе числа 1 и 2 не зависимо от входных. #include <iostream> #include <conio.h> #include <stdio.h> using namespace std; void print(int N) { подробнее

Показать сообщение отдельно
MousePro
49 / 30 / 1
Регистрация: 25.04.2013
Сообщений: 366

Ошибка в книге или я что то не понимаю ? - C++

01.10.2013, 22:41. Просмотров 433. Ответов 10
Метки (Все метки)

Задача по наследованию:
Написать класс "Служащие" которые получают только процент от продаж и "Служащие" которые получают % и мин. З\п.
Я пока написал 1 базовый класс и столкнулся с проблемой.


Вот сам класс

CommissionEmployee.h
Кликните здесь для просмотра всего текста
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
#ifndef COMMISSIONEMPLOYEE_H
#define COMMISSIONEMPLOYEE_H
 
#include "string"
using std::string;
 
class CommissionEmployee
{
public:
    CommissionEmployee(string &, string &,string&,const double,const double);
    void setEmployeeName(string&);
    void setEmployeeSurname(string&);
    void setEmployeeSSN(string&);
    void setEmployeeSale(const double);
    void setEmployeeRate(const double);
    string getEmployeeName();
    string getEmployeeSSN();
    string getEmployeeSurname();
    double getEmployeeSale();
    double getEmployeeRate();
    void PrintSalary ();
private:
    string name;
    string surname;
    string ssn;
    double sale;
    double rate;
};
 
#endif COMMISSIONEMPLOYEE_H



CommissionEmployee.cpp

Кликните здесь для просмотра всего текста
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
#include "CommissionEmployee.h"
#include "iostream"
#include "iomanip"
using std::setprecision;
using std::fixed;
using std::cout;
using std::cin;
using std::endl;
 
CommissionEmployee::CommissionEmployee(string &Name,string &Surname,string &SSN,const double Sale,const double Rate)
    
{
    setlocale(LC_ALL,"");
setEmployeeName(Name);
setEmployeeSurname(Surname);
setEmployeeSSN(SSN);
setEmployeeSale(Sale);
setEmployeeRate(Rate);
cout<<"Конструктор базового класса \n";
}
void CommissionEmployee::setEmployeeName(string & Name)
{
    while(true)
    {
        if(Name.size() >25)
        {
        cout<<"Ошибка, имя слишком большое,введите заного\n";
        cin>>Name;
        }
        else 
        {
        name=Name;
        break;
        }
    }
}
void CommissionEmployee::setEmployeeSurname(string & Surname)
{
    while(true)
    {
        if(Surname.size() >25)
        {
        cout<<"Ошибка, фамилия слишком большое,введите заного\n";
        cin>>Surname;
        }
        else 
        {
        surname=Surname;
        break;
        }
    }
}
void CommissionEmployee::setEmployeeSSN (string & SSN)
{
    while(true)
    {
        if(SSN.size()>=10)
        {
        cout<<"Ошибка, страховка слишком большая,введите заного\n";
        cin>>SSN;
        }
        else 
        {
        ssn=SSN;
        break;
        }
    }
}
void CommissionEmployee::setEmployeeSale(double Sale)
{
    sale=(Sale<0.0)?0.0:Sale;
}
void CommissionEmployee::setEmployeeRate(double Rate)
{
 
    rate=(Rate<0.0)?0.0:Rate;
}
string CommissionEmployee::getEmployeeName(){return name;}
string CommissionEmployee::getEmployeeSurname(){return surname;}
string CommissionEmployee::getEmployeeSSN(){return ssn;}
double CommissionEmployee::getEmployeeSale(){return sale;}
double CommissionEmployee::getEmployeeRate(){return rate;}
void CommissionEmployee::PrintSalary()
{
    cout<<fixed<<setprecision(2);
    cout<<"Имя: "<<name<<endl;
    cout<<"Фамилия: "<<surname<<endl;
    cout<<"Страховка: "<<ssn<<endl;
    cout<<"Процентная ставка: "<<rate<<endl;
    cout<<"Зарплата: "<<sale*rate<<endl;
}



main.cpp

Кликните здесь для просмотра всего текста
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
#include "CommissionEmployee.h"
#include "iostream"
#include "string"
using std::string;
using std::cout;
using std::cin;
 
int main()
{
    setlocale(LC_ALL,"");
string a[3];
cout<<"Введи Имя : ";
cin>>a[0];
cout<<"Введи Фамилию : ";
cin>>a[1];
cout<<"Введи страховку : ";
cin>>a[2];
 
 
CommissionEmployee Employee(a[0],a[1],a[2],25000,0.08);
 
 
Employee.PrintSalary();
 
system ("pause");
return 0;
}



Проблема в том что так как написано в ученике не получается
в учебнике так:

main.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "CommissionEmployee.h"
#include "iostream"
#include "string"
using std::string;
using std::cout;
using std::cin;
 
int main()
{
    setlocale(LC_ALL,"");
 
 
CommissionEmployee Employee("Вася","Пупкин","123456789",25000,0.08);
 
 
Employee.PrintSalary();
 
system ("pause");
return 0;
}

Ошибка:
Кликните здесь для просмотра всего текста
CommissionEmployee::CommissionEmployee(std::string &,std::string &,std::string &,const double,const double): невозможно преобразовать параметр 1 из "const char [4]" в "std::string &"


Я как бы сам понимаю, я же не объект класса передаю, значит в учебнике ошибка??
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru