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++重要性质中的虚函数与多态那部分内容时,顿时有了疑惑.因为书中说了这么一句:使用“基类之指针”指向“派生类之对象”,由该指针只能调用基类所定义的函 ...
随机推荐
- centos6 rpm安装mysql(5.5版本)包括 error : Failed dependencies:libaio的解决办法.
1.先在/opt目录下放了两个rpm包 2.先看系统中是否有其他版本的mysql的rpm包 rpm -qa | grep -i mysql 命令结果如下图: 如果没有此步跳过,否则执行一下命令将其删除 ...
- yii1框架,事务使用方法
Yii1框架事务操作方法如下: $transaction= Yii::app()->db->beginTransaction();//创建事务 $transaction->commi ...
- shell脚本语言基本命令
shell脚本语言基本命令脚本:可运行,不需要编译 #vi 1.sh[编写:i(顶格)或o(换一行)]#! /bin/bash##this is a test shell script##Writte ...
- LeetCode 167. Two Sum II – Input array is sorted
Given an array of integers that is already sorted in ascending order, find two numbers such that the ...
- python——文件管理
文件操作分为读.写.修改 一.读文件 f = open(file='D:/工作日常/兼职白领学生空姐模特护士联系方式.txt',mode='r',encoding='utf-8') data = f. ...
- git clone问题
中秋节回来上班 竟然忘记带电脑了  ̄□ ̄||还好同事有备用电脑,这要是回去拿估计上午都不用干什么了,用同事电脑当然需要安装环境,下面说一下git上遇到的问题吧 (1)首先我尝试用https方式克隆代码 ...
- JavaScript判断页面是否已经加载完毕
做页面时经常会遇到当前页面加载完成后,执行某些初始化工作.这时候就要知道如何判断页面(包括IFRAME)已经加载完成,代码如下: < script language = "javasc ...
- python基础之-字符串
字符模块:strstr.strip():去掉字符串前后空格str.lstrip():去掉字符串左侧空格str.rstrip():去掉字符串右侧空格str.encode():将字符串编码为二进制str. ...
- [bzoj3436]小K的农场_差分约束
小K的农场 bzoj-3436 题目大意:给定n个点,每个节点有一个未知权值.现在有m个限制条件,形如:点i比点j至少大c,点i比点j至多大c或点i和点j相等.问是否可以通过给所有点赋值满足所有限制条 ...
- Servlet的HTTP状态码
以下内容引用自http://wiki.jikexueyuan.com/project/servlet/http-status-codes.html: HTTP请求的格式和HTTP响应消息的格式是相似的 ...