隐藏 覆盖
来源:互联网 发布:淘宝上的原创衣服 编辑:程序博客网 时间:2024/04/28 17:44
隐藏(Hide):
假设有:
class A
{
public:
void func(){}
};
class B: public class A
{
public:
void func(){}
};
那么,对于A* p;不管p指向A还是B,都只能调用A中的func;
同样,对于B* p;不管p指向A还是B,都只能调用B中的func;
总结:对于普通成员函数,调用的是哪个类的版本,要看指针的原型,而不是看指向对象的类型。
假设有:
class A
{
public:
void func(){}
};
class B: public class A
{
public:
void func(){}
};
那么,对于A* p;不管p指向A还是B,都只能调用A中的func;
同样,对于B* p;不管p指向A还是B,都只能调用B中的func;
总结:对于普通成员函数,调用的是哪个类的版本,要看指针的原型,而不是看指向对象的类型。
覆盖(Override):
假设有:
class A
{
public:
virtual void func(){}
};
class B: public class A
{
public:
void func(){}
};
那么,对于A a;p=&a;不管p是A*还是B*,都调用A中的func;
同样,对于B b;p=&b;不管p是A*还是B*,都调用B中的func;
总结:对于虚函数,调用的是哪个类的版本,要看指针指向什么类型的对象,而不是看指针的原型。
假设有:
class A
{
public:
virtual void func(){}
};
class B: public class A
{
public:
void func(){}
};
那么,对于A a;p=&a;不管p是A*还是B*,都调用A中的func;
同样,对于B b;p=&b;不管p是A*还是B*,都调用B中的func;
总结:对于虚函数,调用的是哪个类的版本,要看指针指向什么类型的对象,而不是看指针的原型。
重载(Overload):
即实现同名函数。重载与类无关,更与virtual无关。一般的函数就可以实现。仅仅是返回类型不同是不能重载的,重载至少需要在参数个数、参数类型、参数顺序这三者之中的一个不同。
即实现同名函数。重载与类无关,更与virtual无关。一般的函数就可以实现。仅仅是返回类型不同是不能重载的,重载至少需要在参数个数、参数类型、参数顺序这三者之中的一个不同。
http://blog.pfan.cn/cracker007/17240.html
- 隐藏 覆盖
- 重载、覆盖与隐藏
- 重载、覆盖与隐藏
- 重载、覆盖与隐藏
- 覆盖、重载、隐藏
- c++ 覆盖、重载、隐藏
- 覆盖与隐藏
- 重载,覆盖,隐藏
- 重载、覆盖与隐藏
- 重载、覆盖与隐藏
- 覆盖和隐藏
- 重载 覆盖 隐藏
- 覆盖与隐藏
- 关于覆盖与隐藏
- c++ 覆盖、重载、隐藏
- 覆盖,隐藏,重载
- 重载、覆盖、隐藏
- 重载 覆盖 隐藏
- ACM详解(9)——其他
- 【转】windows下GSL的配置
- Hello!!!
- 水无痕的空间正式开通啦!
- 刚做过测试题
- 隐藏 覆盖
- 马上大四了,不想再糊涂的过日子了。决定找实训机构好好补补了
- 笔记本电脑的维护
- 第一天来到这里1111111
- 其实没啥好说的
- chapter 5
- Chapter 5
- JAVA学习笔记
- 寻梦