函数的覆盖、重载、隐藏

本文探讨了C++中虚函数的概念及其如何实现多态性。通过具体例子对比了函数覆盖与函数隐藏的区别,解释了如何正确使用虚函数来达到预期的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class animal
{
public:
   virtual void breathe()
   {
    cout<<"animal breathe"<<endl;
   }
};
class fish:public animal
{
public:
   void breathe()
   {
   cout<<"fish bubble"<<endl;

   }

};

    派生类中的breach()函数和基类的breach()函数的函数名和参数列表都完全一样,子类的函数重写了基类中的函数,这成为函数的覆盖。发生函数覆盖的条件为:

一.基类函数为虚函数。(用virtual关键字声明的的函数)

二.必须发生在基类和派生类中。

三.函数名和参数列表必须完全一样。

    如果基类的函数不是虚函数,即没有用关键字virtual声明,如下程序:

class animal
{
public:
   void breathe()
   {
    cout<<"animal breathe"<<endl;
   }
};
class fish:public animal
{
public:
   void breathe()
   {
   cout<<"fish bubble"<<endl;

   }

};

    这种情况成为函数的隐藏。在派生类中隐藏了基类的同名函数。如果派生类的函数与基类的函数名字一样,参数不一样,不管基类函数有没有virtual关键字,基类函数都将被隐藏。这种情况与函数重载相似,重载发生在同一个类中。

    如果函数名和参数完全一样,只有在基类函数没有virtual关键字函数的情况下才会发生隐藏。

总结:函数的覆盖是发生在派生类与基类之间,两个函数必须完全相同,并且都是虚函数。如果不属于这种情况就是函数的隐藏。

   一个覆盖和隐藏的例子:

#include <iostream.h>
class Base
{
public:
  virtual void xfn(int i)
  {
   cout<<"Base::xfn(int i)"<<endl;
  }

  void yfn(float f)
  {
   cout<<"Base::yfn(float f)"<<endl;
  }

  void zfn()
  {
   cout<<"Base::zfn()"<<endl;
  }
};

class Derived : public Base
{
public:
  void xfn(int i) //覆盖了基类的xfn函数
  {
   cout<<"Drived::xfn(int i)"<<endl;
  }

  void yfn(int c) //隐藏了基类的yfn函数
  {
   cout<<"Drived::yfn(int c)"<<endl;
  }

  void zfn() //隐藏了基类的zfn函数
  {
   cout<<"Drived::zfn()"<<endl;
  }
};


void main()
{
   Derived d;

   Base *pB=&d;
   Derived *pD=&d;

   pB->xfn(5);
   pD->xfn(5);

   pB->yfn(3.14f);
   pD->yfn(3.14f);

   pB->zfn();
   pD->zfn();
}



内容概要:本文针对国内加密货币市场预测研究较少的现状,采用BP神经网络构建了CCi30指数预测模型。研究选取2018年3月1日至2019年3月26日共391天的数据作为样本,通过“试凑法”确定最优隐结点数目,建立三层BP神经网络模型对CCi30指数收盘价进行预测。论文详细介绍了数据预处理、模型构建、训练及评估过程,包括数据归一化、特征工程、模型架构设计(如输入层、隐藏层、输出层)、模型编译与训练、模型评估(如RMSE、MAE计算)以及结果可视化。研究表明,该模型在短期内能较准确地预测指数变化趋势。此外,文章还讨论了隐层节点数的优化方法及其对预测性能的影响,并提出了若干改进建议,如引入更多技术指标、优化模型架构、尝试其他时序模型等。 适合人群:对加密货币市场预测感兴趣的研究人员、投资者及具备一定编程基础的数据分析师。 使用场景及目标:①为加密货币市场投资者提供一种新的预测工具和方法;②帮助研究人员理解BP神经网络在时间序列预测中的应用;③为后续研究提供改进方向,如数据增强、模型优化、特征工程等。 其他说明:尽管该模型在短期内表现出良好的预测性能,但仍存在一定局限性,如样本量较小、未考虑外部因素影响等。因此,在实际应用中需谨慎对待模型预测结果,并结合其他分析工具共同决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值