C++中函数覆盖和使用虚函数有什么区别
来源:互联网 发布:jquery.uploadify.js 编辑:程序博客网 时间:2024/05/01 00:04
举个例子
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
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++中函数覆盖和使用虚函数有什么区别
- JS中构造函数和普通函数有什么区别
- 虚函数和纯虚函数有什么区别
- C语言里,main 函数中 return x和 exit(x) 到底有什么区别 ?
- 虚函数和抽象函数有什么区别
- 虚函数和抽象函数有什么区别
- STM32中 static型变量和函数有什么区别?
- scala中方法和函数有什么区别
- matlab中脚本文件和函数文件有什么区别?
- 在c++中,运算符和函数有什么区别?
- Python2.7中input和raw_input函数有什么区别
- 宏和inline函数有什么区别
- FileCreate,和CreatFile函数有什么区别?
- 宏和内联函数有什么区别
- block和函数指针有什么区别
- 宏和函数有什么区别?
- C++sqrt()函数与sqrtf()函数有什么区别?
- C语言的指针函数和函数指针有什么区别
- 在嵌入式开发中常用两种服务tftp与nfs(资源的共享与上传,下载)
- UITabView
- A*寻路算法讲解+源码DEMO演示
- [jQuery] 2.2层级选择器(包含选择器,子选择器,相邻选择器,兄弟选择器)
- 《C和指针》读书笔记(10)
- C++中函数覆盖和使用虚函数有什么区别
- 【Machine Learning】逻辑回归 Logistic Regression
- HDU2037——今年暑假不AC
- 基于X的GNOME、GTK、GDK、XLib、GLib等之间的关系
- JVM基础研究整理之七--典型配置举例1
- tomcat运行期优化及问题解决方案
- Linux挂载光驱出现错误:can't find /mnt/cdrom in /etc/fstable or /etc/mtab 解决方法:
- 字符串匹配(BF,KMP,BM)
- Dnn中无法在中等信任级别使用AutoMapper