找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1075|回复: 1

[求助]急!一个虚函数与虚基类的问题

[复制链接]
发表于 2009-11-3 03:33:33 | 显示全部楼层 |阅读模式 IP:江苏扬州
#include<iostream.h>
#include<string.h>
class Person
{
protected:
char *name;
int age;
public:
Person(char *n=" ",int a=0)
{
name=new char[strlen(n)+1];
strcpy(name,n);
age=a;
}
~Person()
{
delete []name;
}
virtual void show()=0;
};
class Postgraduate:virtual public Person
{
private:
int number;
char *kind;
public:
Postgraduate(char *n=" ",int a=0,int num=0,char *k=" "):Person(n,a)
{
number=num;
kind=new char[strlen(k)+1];
strcpy(kind,k);
}
~Postgraduate()
{
delete []kind;
}
void show()
{
cout<<"姓名:"<<name<<" 年龄:"<<age<<" 学号:"<<number<<" 专业:"<<kind<<endl;
}
};
class Teacther:virtual public Person
{
private:
int work_number;
char *job;
public:
Teacther(char *n=" ",int a=0,int w=0,char *j=" "):Person(n,a)
{
work_number=w;
job=new char[strlen(j)+1];
strcpy(job,j);
}
~Teacther()
{
delete []job;
}
void show()
{
cout<<"姓名:"<<name<<" 年龄:"<<age<<" 工作证号:"<<work_number<<" 职称:"<<job<<endl;
}
};
class Work_Postgraduate:public Postgraduate,public Teacther
{
public:
Work_Postgraduate(char *n=" ",int a=0,int num=0,char *k=" ",int w=0,char *j=" "):Person(n,a),Postgraduate(n,a,num,k),Teacther(n,a,w,j)
{}
~Work_Postgraduate()
{}
void show()
{
Postgraduate::show();
Teacther::show();
}
};
void main()
{
Person *p;
Postgraduate A("张三",20,1,"计算机");
Teacther B("王二",32,9527,"教授");
Work_Postgraduate C("李四",24,9,"计算机",9521,"教师");
p=&A;
p->show();
p=&B;
p->show();
p=&C;
p->show();
}

在类Work_Postgraduate中的show()函数为什么不能同时显示Postgraduate::show()和Teacther::show();呢?
show()是一个虚函数.
发表于 2009-11-3 03:33:34 | 显示全部楼层 IP:江苏扬州
你的中间的类的 void show() 也要声明为 virtual,
因为后面还要继承
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 13:18 , Processed in 0.195220 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表