多态 —基类指针
来源:互联网 发布:淘宝助理5怎么上传图片 编辑:程序博客网 时间:2024/06/16 19:28
基类指针指向基类对象就能够使用基类的成员变量和函数,如果指向派生类对象时,就能够使用派生类的成员和函数。
#include <iostream>
using namespace std;
class People{
public:
//People(){}
People(char *name,int age);
//void show(); 基类和派生类都不加virtual 执行出乱 、如果这里不加virtual,那么派生类变量要改为私有类型,
virtual void show(); // 派生类就不用加virtual ,基类加了就不会出现 命名冲突
protected:
char *m_name;
int m_age;
};
People::People(char *name,int age):m_name(name),m_age(age){}
void People::show()
{
cout<<"大家好我叫"<<m_name<<"今年"<<m_age<<"了"<<endl;
}
class Student:public People{
public:
Student(char *name,int age,int salary);
void show();
//virtual void show(); //加virtual 也不影响
//private:
protected:
int m_salary;
};
Student::Student(char *name, int age, int salary): People(name, age), m_salary(salary){ }
void Student::show()
{
cout<<m_name<<"今年"<<m_age<<"岁了,月收入"<<m_salary<<endl;
}
int main()
{
/*People *p = new People("xiaoming",15); //这种写法前面都不用加虚函数
p ->show(); //这种写法的弊端就是如果工程大,要定很多指针会很不方便,所以采用下面方法就定一个指针,用哪指哪
Student *s = new Student(wang",45,5000);
s->show();*/
People *s = new People("xiaoming",15);
s->show();
s = new Student("wang",45,5000);
s->show();
return 0;
}
- 多态 —基类指针
- 基类指针和派生类指针
- 基类指针+子类指针问题
- 基类指针转换为子类指针,子类指针转换为基类指针
- 基类指针转换为子类指针,子类指针转换为基类指针(转载)
- 基类指针与派生类指针的相互转换
- 基类指针、派生类指针与他们的关系
- 基类指针、派生类指针与他们的关系
- (转)基类指针与派生类指针
- 基类指针与派生类指针的相互转换
- 基类指针与派生类指针的相互转换
- C++ 派生类指针 转 基类指针
- 基类指针与派生类指针的相互转换
- 基类指针和派生类指针的使用总结
- 继承中派生类指针转换为基类指针
- 基类指针和子类指针相互赋值
- 基类指针与子类指针的比较
- 基类指针和子类指针相互赋值
- 数据库触发器
- No enum constant com.you.example.EnumExample.Season.
- wikioi 3027 线段覆盖2
- 正则表达式-常用
- 嵌入式Linux开发工具
- 多态 —基类指针
- 【Android】透明状态栏在App中的实现与接口设计
- Mac的U盘自动到底挂载到何处?
- 没有 libgdiplus.so.0的问题解决
- 微信小程序开发--视图层1
- 数据结构--双向链表
- Nosql之二:Mongodb基础
- Android 仿美团网,探索使用ViewPager+GridView实现左右滑动查看更多分类的功能
- [leetcode]Strong Password Checker