Member 14206123 Ответов: 2

Недопустимый операнд как решить


#include <iostream>
#include<stdio.h>
using namespace std;
const int LEN=25;
class Employee
{
    char name[LEN];
    unsigned long enumb;
    public:
    void getdata()
    {
        cout<<"enter name";
        cin>>name;
        cout<<"empno";
        cin>>enumb;
    }
void putdata()
    {
        cout<<name;
        cout<<enumb;
        cout<<basic;
    }
    protected:
    float basic;
    void getbasic()
    {std::cout << "enter basic"<< std::endl;
    std::cin >> basic;
    }
};
class manager:public Employee
{
    private:
    char title[LEN];
    public:
    void getdata()
     {
         Employee :: getdata();
         getbasic();
         std::cout << "enter title" << std::endl;
         cin>>(title);
     }
     void putdata()
     {
         Employee:: putdata();
         std::cout << title<< std::endl;
     }
};
int main(void){
    system("cls");
    manager m1,m2;
    cout <<"manager 1"<< m1.getdata()
    std::cout << "manager 2"<< m2.getdata()std::endl;
    std::cout << "manager 1" << m1.putdata()
    std::cout << "manager 2"<<m2.putdata()std::endl;
    return 0
}


Что я уже пробовал:

#include <iostream>
#включить<stdio.h>
использование пространства имен std;
const int LEN=25;
классный работник
{
имя char[LEN];
беззнаковое длинное перечисление;
общественный:
пустота метода GetData()
{
cout<<"введите имя";
Кин&ГТ;&ГТ;наименование;
cout<<"empno";
cin>>enumb;
}
void putdata()
{
cout<<имя;
cout<<enumb;
="" cout<<basic;
="" }
="" защищенный:
="" плавающей="" основных;
="" void=" " getbasic()
="" {СТД::соиь="" &ЛТ;&ЛТ;="" "введите="" основных"&ЛТ;&ЛТ;="" с std::епси;
="" std::cin="">> basic;
}
};
классный руководитель:государственный служащий
{
частный:
char title[лен];
общественный:
пустота метода GetData()
{
Сотрудник :: getdata();
getbasic();
с std::соиь <&ЛТ; "введите заголовок" &ЛТ;&ЛТ; функция std::епси;
cin>>(название);
}
void putdata()
{
Сотрудник:: putdata();
с std::соиь <&ЛТ; титул&ЛТ;&ЛТ; функция std::епси;
}
};
тап_п(недействительными){
система("cls");
менеджер М1,М2;
cout <<"менеджер 1"<< m1.getdata()
с std::соиь <&ЛТ; "менеджер 2"&ЛТ;&ЛТ; м2.метода GetData()и std::епси;
std::cout << "менеджер 1" << m1.putdata()
std::cout << "менеджер 2"<

Patrice T

и он также сообщает вам свое положение.

2 Ответов

Рейтинг:
2

CPallini

Оба getdata и putdata методы не имеют возвращаемого значения, поэтому вы не можете передать их (несуществующий) результат в std::cout оператор вставки (<<). Пробовать:

int main(void)
{
    manager m1,m2;
    std::cout << "manager 1:\n";
    m1.getdata();
    std::cout << "manager 2:\n";
    m2.getdata();
    std::cout << std::endl;
    std::cout << "manager 1:\n";
    m1.putdata();
    std::cout << "manager 2:\n";
    m2.putdata();
    std::cout << std::endl;
}


Рейтинг:
0

Rick York

главное должно быть записано как :

int main(void)
{
    system("cls");
    manager m1,m2;
    std::cout << "manager 1" << m1.getdata();
    std::cout << "manager 2" << m2.getdata() << std::endl;
    std::cout << "manager 1" << m1.putdata();
    std::cout << "manager 2" << m2.putdata() << std::endl;
    return 0;
}
Казалось, что перед endls не хватает нескольких точек с запятой и пары перенаправителей.


CPallini

Хорошо подмечено, мой 5-й. Обратите внимание, что есть еще одно: код OP передает выполнение методов void оператору вставки cout.