C++虚函数的理解和举例
2014-08-05 23:58
169 查看
//虚函数的作用:允许在派生类中重新定义与基类同名的函数, //并且可以通过基类指针或引用来访问基类和派生类中的同名函数 #include<iostream> #include<string> using namespace std; class Student { public: Student(int n,char nam[],float s); //void display(); //基类定义输出函数, virtual void display(); //加入virtual,就可以:指向基类对象指针的输出派生类的数据,即调用派生类的display()函数 protected: int num; char name[30]; float score; }; Student::Student(int n,char nam[],float s) { num=n; strcpy((char*)name,(char*)nam); score=s; } void Student::display() { cout<<"num:"<<num<<"\nname"<<name<<"\nscore:"<<score<<endl; } class Graduate:public Student { public: Graduate(int,char nam[],float s,float w); void display(); //定义与基类同名的输出函数 private: float wage; }; Graduate::Graduate(int n,char nam[],float s,float w):Student(n,nam,s),wage(w){} void Graduate::display() { cout<<"num:"<<num<<"\nname"<<name<<"\nscore:"<<score<<"\nwage:"<<wage<<endl; } int main() { Student stud1(101,"张三",99.9); //定义基类对象 Graduate grad1(102,"李四",89.9,1200);//定义派生类对象 Student *pt; //定义指向基类对象的指针变量 pt=&stud1; pt->display();//输出基类的对象中的数据 pt=&grad1; pt->display();//指向基类的指针不能调用派生类,不输出派生类的数据,先将派生类的对象指针转换为基类指针 (虚函数可以解决) system("pause"); return 0; }
相关文章推荐
- 递归的一点理解和举例
- c++虚函数和纯虚函数通俗理解
- Handler,Looper,Message,MessageQueue,Thread机制的深入理解(举例说明)
- A/B 测试的基本概念举例理解以及具体实现方法【传统A/B测试基于后端的 A/B 测试(Back-end AB test),现在基本上基于前端js在客户端进行分流,有更多优点,请看里面】
- TCP/IP和HTTP的举例理解
- OSI七层通信的简易理解-举例说明
- 举例理解Hibernate的三种状态
- 小记个人认为的java各概念的举例理解
- 【数据结构】 队列的应用举例——更好的学习和理解队列
- android知识回顾----观察者模式理解和举例
- php类举例--理解
- A/B 测试的基本概念举例理解以及具体实现方法【传统A/B测试基于后端的 A/B 测试(Back-end AB test),现在基本上基于前端js在客户端进行分流,有更多优点,请看里面】
- C++虚函数理解(二)
- android知识回顾----单例模式理解和举例
- 举例理解“交互”的含义
- 最简单了理解线程通信的举例
- 菜鸟举例理解字节流和字符流区别
- C++虚函数---我的理解
- 举例理解推荐算法GBDT
- js中回调函数的理解 举例说明js回调函数