#include <iostream>
#include <string>
using namespace std; //class 实现
class Employee
{
string name;
public:
Employee(string n);
virtual void print();
}; //class 成员函数实现
Employee::Employee(string n) :name(n)//初始化成员列表
{
//name = n;
}
void Employee::print()
{
cout << name << endl;
} //class 实现
class Manager: public Employee
{
int level;
public:
Manager(string n, int l = );
//virtual void print();
void print();
}; //class 成员函数实现
Manager::Manager(string n, int l) :Employee(n), level(l)
{
} void Manager::print()
{
cout << level << "\t";
Employee::print();
}
////派生类的构造函数只能描述它自己的成员和其直接基类的初始式,不能去初始化基类的成员。
//Manager::Manager(string n, int l) : name(n), level(l)
//{
//} int main()
{
// Manager m("Zhang",2);
// Employee e("Li");
// m.print();
// e.print();
//
// cout<<"ok-----------"<<endl;
//
// Employee *p=&e;
// p->print();
// cout<<"ok-2222----------"<<endl;
//
// p=&m;
// p->print();
//
// cout<<"ooo"<<endl;
//
// Manager *q=&m;
// q->print(); // Employee *employees[100];
// int num = 0;
//
// employees[num] = &e;
// num++;
// employees[num] = &m;
// num++; /////////////////////////////////////////// Employee* employees[];
int e_num = ;
Employee* pe;
string name; int level;
char cmd; cout << "input cmd" << endl; while (cin >> cmd)
{
if (cmd == 'M' || cmd == 'm')
{
cout << "input name and level" << endl;
cin >> name >> level;
pe = new Manager(name, level);
employees[e_num] = pe;
e_num++;
}
else if (cmd == 'e' || cmd == 'E')
{
cout << "input name" << endl;
cin >> name;
pe = new Employee(name);
employees[e_num] = pe;
e_num++;
}
else
break;
cout << "input cmd" << endl;
}
for (int i = ; i < e_num; i++)
{
employees[i]->print();
} return ;
}

input cmd
M
input name and level
li 3
input cmd
m
input name and level
rr
4
input cmd
e
input name
bffd
input cmd
e
input name
sdfsdfsdf
input cmd
s
3 li
4 rr
bffd
sdfsdfsdf

通过基类指针Employee *pe可以指向基类和派生类。从而达到多态的效果。后面s后的就是输出的结果。

最新文章

  1. c#控制打印机杂项
  2. 借助 Lucene.Net 构建站内搜索引擎(下)
  3. context元素大概解说
  4. C. Shaass and Lights 组合数学
  5. 那些年,我们在Django web开发中踩过的坑(一)——神奇的‘/’与ajax+iframe上传
  6. 将类似 12.56MB 36.89KB 转成 以K为单位的数字【备忘】
  7. RPC应用的java实现(转)
  8. C编译: 动态连接库 (.so文件)
  9. PHP实现站点pv,uv统计(三)
  10. php引用计数与变量引用
  11. python2.7 使用super关键词 报错 TypeError: must be type, not&amp;n
  12. hdu 1878 无向图的欧拉回路
  13. CSS 图像左右对齐
  14. -如何存储并定时更新access_token
  15. Python-爬虫-租房Ziroom
  16. gdb fabs错误输出
  17. Vue学习五:v-for指令使用方法
  18. mongodb之oplog
  19. Ibatis.Net 输出SQL语句学习(七)
  20. python--ConfigParser读写改配置文件

热门文章

  1. int,long,long long的数据范围
  2. 性能测试学习第五天_loadrunner概述
  3. mysql必知必会学习笔记(1)
  4. jQuery 方法 属性
  5. 初识MAC(由window到mac的转变适应)
  6. Java并发编程的艺术,解读并发编程的优缺点
  7. Backbone源码解析系列
  8. 用简单的方法学习ES6
  9. 浅谈.htaccess文件--避免滥用.htaccess文件
  10. vue-cli之脚手架