C++ 为什么要用覆盖(学习笔记)
2014-11-28 15:25
246 查看
长篇大论这里就不说了,举个例子 class fruit { public: void func() { printf("fruit\n"); } virtual void vfunc() { printf("v fruit\n"); } }; class apple:public fruit { public: void func() { printf("apple\n"); } void vfunc() { printf("v apple\n"); } }; int main(int argc, char* argv[]) { fruit* f = new apple(); //注意 f是父类指针 f->func(); f->vfunc(); return 0; } 结果是: fruit v apple 例子中func采用了函数覆盖 vfunc采用了虚函数 当fruit类的指针指向一个apple类的对象时,func调用了父类的函数,vfunc调用了子类的函数。 如过是函数覆盖,调用成员函数时,直接调用对象指针所属类的成员函数,例子中为fruit 虚函数的情况下,调用成员函数时,调用的是指向对象的所属类的成员函数,例子中为apple
相关文章推荐
- 【C++】【学习笔记】【019】覆盖方法和重载方法
- C++学习笔记-----继承体系中函数的重载,覆盖和隐藏的区别
- C++学习笔记:为什么不要重载逻辑与和逻辑或&& || 操作符
- C++学习笔记之覆盖、重载、多态的区别
- 【C++学习笔记】函数重载和函数覆盖
- 学习笔记之C++为什么将函数声明或者类的定义放在.h文件中,而将其实现放在原文件中
- 为什么对象如此重要----C++学习笔记之一
- C++学习笔记(4)
- c++入门学习笔记--类和对象
- C++学习笔记(5)
- c++学习笔记 2005-9
- c++学习笔记
- 从今天开始每天写C++或其他学习的知识的笔记,以激励自己
- C++ 学习笔记
- 高质量C++/C编程指南学习笔记(上)
- c++入门学习笔记指针篇
- C++学习笔记(6)
- C++学习笔记(1)——基类、派生类的对象空间
- C++学习笔记
- C++ Primer 学习笔记关于练习题6.12