C++学习中的(。。。)问题
来源:互联网 发布:淘宝有聊天壁纸设置吗 编辑:程序博客网 时间:2024/05/02 00:01
1.erro:no match for ‘operator>>’
cin>>x>>endl;
cin 不能用换行符,cin的结束字符默认为换行符。
2.静态成员函数
1.只有静态成员函数可以直接通过类名调用
2.静态成员函数可以直接访问该类的静态数据和函数成员,而访问非静态成员,必须通过对象名。
3.派生类成员的标识与访问
class Staff{//员工 int num; string name; float rateOfAttend; int basicSal; int prize;public: Staff(){} Staff(int n,string nn,float r,int b,int p) { num=n; name=nn; rateOfAttend=r; basicSal=b; prize=p; } ~Staff(){} int Output()//基本信息 { cout<<"员工的基本信息:"<<endl; cout<<"编号 "<<"姓名 "<<"出勤率 "<<"基本工资 "<<"奖金 "<<endl; cout<<num<<" "<<name<<" "<<rateOfAttend<<" "<<basicSal<<" "<<prize<<endl; } float OutputWage()//实发工资 { return basicSal+prize*rateOfAttend; }};class Saleman:public Staff{//销售员 float deductRate; int personAmount;public: Saleman(){} Saleman(int n,string nn,float r,int b,int p,float d,int pa):Staff(n,nn,r,b,p) { deductRate=d; personAmount=pa; } ~Saleman(){} int Output()//基本信息 { Staff s;//错误在此 s.Output();//错误在此 cout<<"销售员提成比例:"<<deductRate<<endl; cout<<"个人销售额:"<<personAmount<<endl; } float OutputWage(float r,int b,int p,float d,int pa) { Staff s;//错误在此 return s.OutputWage()+deductRate*personAmount;//错误在此 }//实发工资{}};
派生类的新增成员隐藏了基类的同名成员,“对象名.成员名”就只能访问到派生类新增的成员 所以此时对基类同名成员的访问,只能通过基类名和作用域分辨符来实现 即 必须明确告诉系统要使用哪个基类的成员
修改如下:
class Staff{//员工 int num; string name; float rateOfAttend; int basicSal; int prize;public: Staff(){} Staff(int n,string nn,float r,int b,int p) { num=n; name=nn; rateOfAttend=r; basicSal=b; prize=p; } ~Staff(){} int Output()//基本信息 { cout<<"员工的基本信息:"<<endl; cout<<"编号 "<<"姓名 "<<"出勤率 "<<"基本工资 "<<"奖金 "<<endl; cout<<num<<" "<<name<<" "<<rateOfAttend<<" "<<basicSal<<" "<<prize<<endl; } float OutputWage()//实发工资 { return basicSal+prize*rateOfAttend; }};class Saleman:public Staff{//销售员 float deductRate; int personAmount;public: Saleman(){} Saleman(int n,string nn,float r,int b,int p,float d,int pa):Staff(n,nn,r,b,p) { deductRate=d; personAmount=pa; } ~Saleman(){} int Output()//基本信息 { Staff::Output();//修改在此 cout<<"销售员提成比例:"<<deductRate<<endl; cout<<"个人销售额:"<<personAmount<<endl; } float OutputWage(float r,int b,int p,float d,int pa) { return Staff::OutputWage()+deductRate*personAmount;//修改在此 }};
0 0
- C 开发学习中的问题
- C Primer Plus 学习中的问题
- C++学习中的(。。。)问题
- (C语言)ACM中的数据处理问题!
- c语言中的问题
- C/C++中的++问题
- c编程中的问题
- C中的递归问题
- [C学习]C中的变量
- [C学习]C中的变量(?)
- kernel 中的c语言学习(零零散散)
- 在c语言学习中的问题(一):数组指针,指针数组,二维数组的理解与区分
- CUDA学习中的新手问题 (转)
- 学习中的问题
- 学习过程中的问题
- Java 学习中的问题
- 学习中的问题
- 专业学习中的问题
- 线性表
- 快速幂计算
- 11-hive数据查询方式
- AVL树C代码
- C++模板实现二叉查找树(三 深度优先遍历)
- C++学习中的(。。。)问题
- 根据C语言制作九九乘法表
- Google Guava 使用Optional<T>
- 文件操作
- http://rejoy.iteye.com/blog/1627405
- Java基础学习笔记--多态
- 【EF操作】——多表联查的linq操作
- [数组]汕头市选2012初中组】求和(sum)
- TCP三次握手过程分析