c++-求解答,问题出在那里,木有编译错误

问题描述

求解答,问题出在那里,木有编译错误

// shiyan66.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include"iomanip"
#include"iostream"
using namespace std;
class Employee

{ public:
Employee(const long n,const char* N){number=n,*name=*N;};
virtual~Employee(){};

const char* getName(long n) const{};
const long getNumber() const{};
virtual double eamings() const=0;

virtual void print() const{cout<<"编号:"< protected:
long number;
char name;
};
class Manager: public Employee
{ public:
Manager(const long n,const char
N,double u ):Employee(n, N){monthlySalary=u;}
~Manager(){};
void setMonthlySalary(long n){number=n;};
virtual double eamings() const{return 0;};
virtual void print() const{cout private:
double monthlySalary;
};
class HourlyWorker: public Employee
{ public:
HourlyWorker(const long n,const char* N,double=0.0, int=0):Employee(n, N){number=n,*name=*N;};
~HourlyWorker(){}
void setWage(double h){hours=h;};
void setHours(int w){wage=w;};
virtual double eamings() const{return hours*wage; };
virtual void print() const{cout private:
double wage;
double hours;
};
class PieceWorker: public Employee
{ public:
PieceWorker(const long n,const char* N,double=0.0, int=0):Employee(n, N){number=n,*name=*N;};
~PieceWorker(){}
void setWage(double w){wagePerPiece=w;};
void setQuantity(int q){quantity=q;};
virtual double eamings() const{return wagePerPiece*quantity;};
virtual void print() const{cout private:
double wagePerPiece;
int quantity;
};
int main()
{ cout Manager m1(10135,"Cheng ShaoHua", 1200) ;
Manager m2(10201,"Yan HaiFeng",1000);
m2.setMonthlySalary ( 5300) ;
HourlyWorker hw1(30712,"Zhao XiaoMing",5,8*20) ;
HourlyWorker hw2(30649,"Gao DongSheng" ,6,98*8) ;
hw2.setWage(4.5) ;
hw2.setHours(10*30) ;
PieceWorker pw1(20382,"Xiu LiWei",0.5,2850) ;
PieceWorker pw2(20496,"Huang DongLin" ,1,23*10) ;
pw2.setWage(0.75);
pw2.setQuantity (1850);
Employee*basePtr;
basePtr=&m1 ; basePtr=&m2; basePtr=&hw1 ; basePtr=&hw2 ; basePtr=&pw1 ; basePtr=&pw2 ;
basePtr->print(); basePtr->print(); basePtr->print(); basePtr->print(); basePtr->print(); basePtr->print();
return 0;
}

解决方案

你这还没有编译错误么?一坨一坨的错误,你到底用的哪家的编译器?蓝翔的吗?还木有编译错误

解决方案二:

错误太多了,帮你修改没有语法错误了。剩下的逻辑错误自己完成吧。


#include "stdafx.h"

#include
#include
using namespace std;

class Employee
{ public:
Employee(const long n,const char* N){number=n,name=new char[strlen(N) + 1]; memset(name, 0, strlen(N) + 1); memcpy(name, N, strlen(N));}
virtual ~Employee(){if(NULL != name) {delete[] name; name = NULL;}}
const char* getName(long n) const{return name;}
const long getNumber() const{return number;}
virtual double eamings() const=0;
virtual void print() const{cout<<"编号:";}

protected:
long number;
char* name;
};

class Manager: public Employee
{
public:
Manager(const long n,const char* N,double u ):Employee(n, N){monthlySalary=u;}
~Manager(){};
void setMonthlySalary(long n){number=n;}
virtual double eamings() const{return 0;};
virtual void print() const{cout<<"" ;}
private:
double monthlySalary;
};

class HourlyWorker: public Employee
{
public:
HourlyWorker(const long n,const char* N,double w, int h):Employee(n, N){wage = w; hours = h;}
~HourlyWorker(){}
void setWage(double h){hours=h;}
void setHours(int w){wage=w;}
virtual double eamings() const{return hours*wage; };
virtual void print() const{cout<<"";}
private:
double wage;
double hours;
};
class PieceWorker: public Employee
{
public:
PieceWorker(const long n,const char* N,double piece, int count):Employee(n, N){wagePerPiece = piece; quantity =count;}
~PieceWorker(){}
void setWage(double w){wagePerPiece=w;};
void setQuantity(int q){quantity=q;};
virtual double eamings() const{return wagePerPiece*quantity;};
virtual void print() const{cout<<"";}
private:
double wagePerPiece;
int quantity;
};

int main()
{
Manager m1(10135,"Cheng ShaoHua", 1200) ;
Manager m2(10201,"Yan HaiFeng",1000);
m2.setMonthlySalary ( 5300) ;
HourlyWorker hw1(30712,"Zhao XiaoMing",5,8*20) ;
HourlyWorker hw2(30649,"Gao DongSheng" ,6,98*8) ;
hw2.setWage(4.5) ;
hw2.setHours(10*30) ;
PieceWorker pw1(20382,"Xiu LiWei",0.5,2850) ;
PieceWorker pw2(20496,"Huang DongLin" ,1,23*10) ;
pw2.setWage(0.75);
pw2.setQuantity (1850);
Employee*basePtr;
basePtr=&m1 ; basePtr=&m2; basePtr=&hw1 ; basePtr=&hw2 ; basePtr=&pw1 ; basePtr=&pw2 ;
basePtr->print(); basePtr->print(); basePtr->print(); basePtr->print(); basePtr->print(); basePtr->print();
return 0;
}


解决方案三:

错误好多,怎么没有编译错误。

解决方案四:

可以先换一个编译器试试,你这个编译器似乎简单的错都查不出。。。。

时间: 2024-11-02 22:20:02

c++-求解答,问题出在那里,木有编译错误的相关文章

bootstrap modal弹出框 关闭后会再弹出一次 急求解答

问题描述 bootstrap modal弹出框 关闭后会再弹出一次 急求解答 <!doctype html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>alert_modal弹出

javaweb-js 点击事件 出错了 求解答

问题描述 js 点击事件 出错了 求解答 超链接<td><a href="javascript:del_sure()" class="delete" id="${param.pageNo },${item.book.id }">删除</a></td> 方法: function del_sure() { flag = confirm("确定要删除信息吗 ?"); if (flag)

jboss配置出问题,求解答

问题描述 jboss配置出问题,求解答 eclipse4.4.2配置jboss时有些不能安装,只能安装一部分

android studio-Android studio 大部分系统方法报红 让我setup jdk 代码提示也出不来 求解答

问题描述 Android studio 大部分系统方法报红 让我setup jdk 代码提示也出不来 求解答 Android studio 大部分系统方法报红 让我setup jdk 代码提示也出不来 求解答 解决方案 前段时间还好好的 今天弄个程序弄一般突然这样了 求大大解答 解决方案二: 我今天也碰到了同样的问题,希望能帮助到你,其实你只要更新你的SDK就可以了,或者你点击右下角的eventlog中报错的信息中的报错信息 系统会判断你应该升级或者安装缺少的组件,你点击就行了.我就是这样解决问

求大神解答一下-求解答哪一步出错了,一个死循环

问题描述 求解答哪一步出错了,一个死循环 static void Main(string[] args) { for (int j = 1; j <=9; j++) { for (int i = 1; i <= j; j++) { Console.Write("{0}*{1}={2}", j, i, i * j); } Console.WriteLine(); } Console.ReadLine(); } 解决方案 看看你的第二个for循环. for(int i = 1;

图片-动态创建的div中mouseover事件中的div加载出的数据总是最有一条 求解答

问题描述 动态创建的div中mouseover事件中的div加载出的数据总是最有一条 求解答 我用的是json 一共30条数据 在动态创建的的div上用mouseover事件动态创建30个小的div(dvBeauty2)用来显示加载出的div的信息( jsonLegends.LegendName) 怎么30个都是显示的最后一条数据 求解答!!! function LoadUlData(jsonArray) { for (var value = 0; value < jsonArray.lengt

刚安装android studio遇到问题,给出详细截图求解答,很急

问题描述 刚安装android studio遇到问题,给出详细截图求解答,很急 解决方案 同步失败,是不是你忘记开vpn了.你懂的. 解决方案二: 那你可以肉身翻x强. 不然没辙. 解决方案三: 可以考虑安装pix vpn,这个可以翻 解决方案四: 可以考虑买个VPN,或者用免费的翻墙软件....

求解答一下-求解答哪一步出错了,一个死循环

问题描述 求解答哪一步出错了,一个死循环 static void Main(string[] args) { for (int j = 1; j <=9; j++) { for (int i = 1; i <= j; j++) { Console.Write("{0}*{1}={2}", j, i, i * j); } Console.WriteLine(); } Console.ReadLine(); } 解决方案 额..i永远都是1,..永远小于j 能退出循环? 解决方

java 的一个记事本程序 为什么会出这种错?求解答

问题描述 importjava.awt.BorderLayout;importjava.awt.Container;importjava.awt.FlowLayout;importjava.awt.Font;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjava.i