YTU 2636: B3 指向基类的指针访问派生类的成员函数
2636: B3 指向基类的指针访问派生类的成员函数
时间限制: 1 Sec 内存限制: 128 MB
提交: 433 解决: 141
题目描述
输入
输出
样例输入
Wang 40 Manager Sales
Zhang 30 Software
样例输出
Wang is Manager in Sales department.
Zhang is an engineer of Software major.
迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……
#include <iostream>
using namespace std;
class Person
{
public:
Person(string na, int a):name(na),age(a) {}
virtual void show();
protected:
string name; // 姓名
int age; // 年龄
};
class Leader: public Person
{
private:
string job; // 职务
string dep; // 部门
public:
Leader(string na, int a, string j, string d): Person(na,a),job(j),dep(d) { }
void show();
};
void Person::show()
{
cout<<name;
}
void Leader::show()
{
Person::show();
cout<<" is "<<job<<" in "<<dep<<" department."<<endl;
}
class Engineer: public Person
{
string major1; // 专业
public:
Engineer (string na, int a, string m): Person(na, a),major1(m) { }
void show()
{
cout<<name<<" is an engineer of "<<major1<<" major."<<endl;
}
};
int main()
{
Person *p;
string name, job, dept,major;
int age;
cin>>name>>age>>job>>dept;
p=new Leader(name,age,job,dept);
p->show();
cin>>name>>age>>major;
p=new Engineer(name,age,major);
p->show();
return 0;
}
#include <iostream>
using namespace std;
class Person
{
public:
Person(string na, int a):name(na),age(a) {}
virtual void show(); protected:
string name; // 姓名
int age; // 年龄
};
class Leader: public Person
{
private:
string job; // 职务
string dep; // 部门
public:
Leader(string na, int a, string j, string d): Person(na,a),job(j),dep(d) { }
void show();
};
void Person::show()
{
cout<<name;
}
void Leader::show()
{
Person::show();
cout<<" is "<<job<<" in "<<dep<<" department."<<endl;
}
class Engineer: public Person
{
string major1; // 专业
public:
Engineer (string na, int a, string m): Person(na, a),major1(m) { }
void show()
{
cout<<name<<" is an engineer of "<<major1<<" major."<<endl;
}
};
int main()
{
Person *p;
string name, job, dept,major;
int age;
cin>>name>>age>>job>>dept;
p=new Leader(name,age,job,dept);
p->show();
cin>>name>>age>>major;
p=new Engineer(name,age,major);
p->show();
return 0;
}
YTU 2636: B3 指向基类的指针访问派生类的成员函数的更多相关文章
- C++_派生类的构造函数及派生类和基类之间的特殊关系
派生类和基类的概念及派生类构造函数的原理: 创建一个叫做TableTennisPlayer的基类,记录会员的名字和是否有球桌. //声明一个基类 class TableTennisPlayer { p ...
- C++成员函数指针错误用法警示(成员函数指针与高性能的C++委托,三篇),附好多评论
今天做一个成绩管理系统的并发引擎,用Qt做的,仿照QtConcurrent搞了个模板基类.这里为了隐藏细节,隔离变化,把并发的东西全部包含在模板基类中.子类只需注册需要并发执行的入口函数即可在单独线程 ...
- C++中的空类,编译器默认可以产生哪些成员函数
C++中的空类,编译器默认可以产生哪些成员函数 C++中创建一个空类:class Empty {};默认会生成4个函数,其函数的原型如下: public: Empty() { ... } Empty( ...
- C++类继承--基类new和用派生类new的区别
实际上无论是用基类还是派生类New, 结果是一样的: #include <stdio.h> class Base { public: int a; Base(){ a=0; } virtu ...
- 基类的两个派生类再派生一个派生类 用virtual避免二义性
class vehicle{ int MaxSpeed; int Weight;public: vehicle(int maxspeed, int weight) :MaxSpeed(maxspeed ...
- C++空类产生哪些成员函数 || C++类可以自动生成的6个成员函数
class Empty { public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty ...
- Private表示该属性(方法)为只有本类内部可以访问(类内部可见)。
Public表示该属性(方法)公开: (想用private还要用set和get方法供其他方法调用,这样可以保证对属性的访问方式统一,并且便于维护访问权限以及属性数据合法性) 如果没有特殊情况,属性一定 ...
- python类中保存非绑定方法作为成员函数
习惯了函数式,动不动传一个函数.但是直接把函数作为类方法保存,再调用时会报错. 举一个unittest时的例子 class MyTestCase(unittest.TestCase): @classm ...
- C++ 虚函数在基类与派生类对象间的表现及其分析
近来看了侯捷的<深入浅出MFC>,读到C++重要性质中的虚函数与多态那部分内容时,顿时有了疑惑.因为书中说了这么一句:使用“基类之指针”指向“派生类之对象”,由该指针只能调用基类所定义的函 ...
随机推荐
- fastclick.js插件使用
引入插件步骤 ①在HTML页面中添加 <script type='application/javascript' src='/path/to/fastclick.js'></scr ...
- [Luogu] P1131 [ZJOI2007]时态同步
题目描述 题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3…进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何 ...
- Linux下启动tomcat报java.lang.OutOfMemoryError: PermGen space
一.错误信息 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke ...
- CSS 全局样式
设置全局 CSS 样式:基本的 HTML 元素均可以通过 class 设置样式并得到增强效果:还有先进的栅格系统.
- Mysql:零散记录
limit用法 查询第4行记录 select * from tablename limit 3,1; limit 3,1:截取第3行加1行的数据 查询第6-15行 select * from tabl ...
- 《深入浅出深度学习:原理剖析与python实践》第八章前馈神经网络(笔记)
8.1 生物神经元(BN)结构 1.人脑中有100亿-1000亿个神经元,每个神经元大约会和其他1万个神经元相连 2.细胞体:神经元的主体,细胞体=细胞核+细胞质+细胞膜,存在膜电位 3.树突:从细胞 ...
- C语言学习8
计算某日是该年的第几天 编写一个计算天数的程序,用户从键盘输入年.月.日,在屏幕中输出此日期是该年的第几天. /******************************************** ...
- LeetCode(36)Valid Sudoku
题目 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...
- layer弹层content写错导致div复制了一次,导致id失效 $().val() 获取不到dispaly:none div里表单的值
错误之源: $("a.consult").click(function () { lib_consult_html = $('#consult-html').h ...
- js用for...in 这种遍历的方式
var arr = new Array("first", "second", "third") for(var item in arr) { ...