读书人

C++小白.求调教解决方法

发布时间: 2012-05-09 12:13:59 作者: rapoo

C++小白..求调教
#include<iostream>
#include<string>
using namespace std;
class Employee
{
protected:
string name;
string ID;
public:
Employee(){};
virtual void set()=0;
virtual void show()=0;


~Employee(){};
};


class Manager:public Employee
{
private:
double salary;
public:
Manager(){};
void set(string n,string i,double s)
{

name=n;
ID=i;
salary=s;
};

void show()
{ cout<<"Manager"<<endl;
cout<<"name:"<<name<<endl;
cout<<"ID:"<<ID<<endl;
cout<<"salary:"<<salary<<endl;

};

~Manager(){};
};

void main()
{ Employee *p;
Manager m;
p=&m;
p->set("a","1001",3000);
p->show();

}

[解决办法]
Employee中的定义改为virtual void set()=0;改为void set(string n,string i,double s)=0;就达到你想要的结果了


[解决办法]
基类virtual void set()=0这个方法为纯虚函数,但是你在子类Manager中却实现了void set(string n,string i,double s)这个方法,并没有实现virtual void set()=0,所以子类Manager还是一个抽象类,是不能实例化的

读书人网 >C++

热点推荐