读书人

隐藏和覆盖有什么用啊该如何处理

发布时间: 2012-03-29 12:53:12 作者: rapoo

隐藏和覆盖有什么用啊
覆盖:基类用virtual修饰函数,派生类和基类函数名、参数都相同。
隐藏:无virtual,或派生类和基类函数名相同但参数不相同。

请问这两种方法分别有什么用啊

[解决办法]
覆盖 形成了多态

隐藏 就不好说了
[解决办法]
从你这段代码来看,没区别,两者都是覆盖(实现多态)。
原文表达的是这个意思:
class A{
void f(void);
}

class B : public A{
void f(int para);
}

这个就是隐藏。
[解决办法]
覆盖,其实叫“改写”更好些。这是实现多态。
隐藏,90%的情况下都是一个“错误”。
[解决办法]
c++ 重载 覆盖 隐藏2007-05-25 09:14成员函数被重载的特征
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
覆盖是指派生类函数覆盖基类函数,特征是
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)
3种情况怎么执行:1。重载:看参数2。隐藏:用什么就调用什么3。覆盖:调用派生类

[解决办法]
等到你去开发软件的时候就明白了~!
[解决办法]
隐藏,90%的情况下都是一个“错误”。不会编译出错,只是容易让人用错。
主要问题是,代码无法正确描述你的真正意图。代码是写给人看的。意图胡乱的代码就是一个“错误”

读书人网 >C++

热点推荐