C++中重载(overload)、覆盖(override)与隐藏(oversee)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++中重载(overload)、覆盖(override)与隐藏(oversee),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1813字,纯文字阅读大概需要3分钟。
内容图文
重载:
class A
{
……
virtual int fun();
void fun(int);
void fun(double,double);
……
};
上述A类定义中的3个fun函数便是重载关系。
|
#include<iostream>
using namespace std;
class A
{
public:
virtual void fun1()
{
cout<<"A::fun1()"<<endl;
}
virtual void fun2()
{
cout<<"A::fun2()"<<endl;
}
};
class B:public A
{
public:
void fun1() // B中的fun1覆盖了A中的fun1,同时继承了A中的fun2
{
cout<<"B::fun1()"<<endl;
}
};
class C:public B
{
public:
void fun2()
{
cout<<"C::fun2()"<<endl; //C类继承了B中的fun1,同时重定义覆盖了fun2
}
};
|
int main()
{
A* p = new C;
p->fun1();
p->fun2();
return 0;
}
|
隐藏:
#include <iostream>
using namespace std;
class A
{
public:
void fun(int xp) //非虚函数,形参int
{ cout<<xp<<endl; }
};
class B : public A
{
public:
void fun(const char * s) //隐藏,oversee,参数为字符串
//参数相同,但是基类不是虚函数,构成隐藏oversee
{ cout<<s<<endl; }
void fun(int xp) //重载
{ cout<<"B::fun()"<<endl; }
};
|
int main()
{
B b;
b.fun("hello");
b.fun(2); //B 中没有void fun(int) 会报错,基类中的被覆盖
return 0;
}
|
原文:https://www.cnblogs.com/meihao1203/p/9368280.html
内容总结
以上是互联网集市为您收集整理的C++中重载(overload)、覆盖(override)与隐藏(oversee)全部内容,希望文章能够帮你解决C++中重载(overload)、覆盖(override)与隐藏(oversee)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。