操作数无效如何解决 [英] Invalid operand how to solve
问题描述
#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>
#include< stdio.h>
using namespace std;
const int LEN = 25;
class Employee
{
char name [LEN];
unsigned long enumb;
public:
void getdata()
{
cout<<输入名称;
cin>>名称;
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 = >>基本;
}
};
班级经理:公共员工
{
$ b $私人:
char title [LEN];
public:
void getdata()
{
Employee :: getdata();
getbasic();
std :: cout<< 输入标题<< std :: endl;
cin>>(标题);
}
void putdata()
{
Employee :: putdata();
std :: cout<<标题<< std :: endl;
}
};
int main(void){
system(cls );
经理m1,m2;
cout<<经理1<< m1.getdata()
std :: cout<< 经理2<< m2.getdata()std :: endl;
std :: cout<< manager 1<< m1.putdata()
std :: cout<< manager 2<
What I have tried:
#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"<
推荐答案
main应该写成:
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之前似乎缺少几个分号和几个重定向器。
It seemed to be missing several semicolons and a couple of redirectors before the endls.
两个getdata
和putdata
方法没有返回值,因此您无法将其(不存在的)结果传递给std :: cout
插入运算符(<<
)。尝试:
Bothgetdata
andputdata
methods have no return value, so you cannot pass their (inexisting) result tostd::cout
insertion operator (<<
). Try:
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;
}
这篇关于操作数无效如何解决的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!