c/c++中的隐藏  举个栗子

class A

{

public : void fun1(int a, int b)

{

cout<<"abcd"<<endl;

}

};

class B : public A

{

public : void fun1(int a)

{

cout<<"abcdefg"<<endl;

}

};

int main ()

{

B b;

b.fun1(3,4);  //会出错,因为子类与父类之间发生了同名函数隐藏,隐藏了父类的函数

return 0;

}

重载:首先它是发生在同一个类中,函数名字相同,返回值、函数参数可以不同

重写:在基类和派生类中,函数形式完全一样,函数名、返回值、参数都相同,加上virtual后是实现多态的一个条件。

隐藏:基类和派生类之间,只是函数名相同,如果用派生类的对象调用基类的重名函数(只是重名,函数参数可以不同,子类没有这个函数但是父类有的,子类对象想调用父类的那个函数),将会发生错误,编译不通过,原因是发生了函数隐藏,子类的函数隐藏了父类函数。如果想调用 需要使用::   例如  b1.A::fun1(1,2,3);

c++中的隐藏及重载、重写与隐藏的区别的更多相关文章

  1. Django用户认证模块中继承AbstractUser与AbstractBaseUser重写User表的区别

    AbstractUser和AbstractBaseUser看起来十分相似,如果你不熟悉djiango的auth重写User,那你很容易弄错,导致一堆bug. 我们查看AbstractUser的源码得知 ...

  2. Java中实现某方法和重写某方法的区别

    实现(implements) 实现一个方法,在实现某个接口,或者是继承某个抽象类,在接口和在抽象类中定义的方法,本身是没有实现的,也就是没有方法体,你在当前类中就需要去实现这个方法. 重写(overl ...

  3. c++中的隐藏、重载、覆盖(重写)

    转自c++中的隐藏.重载.覆盖(重写) 1 重载与覆盖 成员函数被重载的特征: (1)相同的范围(在同一个类中): (2)函数名字相同: (3)参数不同: (4)virtual关键字可有可无. 覆盖是 ...

  4. 重载(overload),覆盖/重写(override),隐藏(hide)

    写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖/重写(override),隐藏(hide).在早期的C++书籍中,常常把重载(overload)和覆盖(override)搞错 ...

  5. C++基础--重载、重写、隐藏

    1.重载(overload) 重载的概念是在同一作用域内,函数名相同,函数输入参数个数.数据类型不同,但是不能是函数名.参数个数.数据类型完全相同但返回值不同的情况.最直接的例子是常见的构造函数重载, ...

  6. c++继承关系中成员函数的重载、重写、重定义之间的区别

    1.Override.Overload.Redefine Overload 重载只能发生在类内部,不能发生在子类和父类的继承中.具体来说,如果子类中有父类同名.同返回值类型,但是不同参数列表,这两个在 ...

  7. 重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件

    重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件 为什么会需要这样子的一种方法来实现隐藏或者显示一个cell中的某些控件呢? 其实,隐藏cell中某 ...

  8. makefile中重载与取消隐藏规则示例

    学习<跟我一起写Makefile-陈皓>后一直不懂,如何重载或取消隐藏规则 为了博客版面整洁,何为隐藏规则,Makefile基本规则编写等基础支持请自行百度. 需要声明的是:这些知识可能在 ...

  9. C#中子类对基类方法的继承、重写和隐藏

    提起子类.基类和方法继承这些概念,肯定大家都非常熟悉.毕竟,作为一门支持OOP的语言,掌握子类.基类是学习C#的基础.不过,这些概念虽然简单,但是也有一些初学者可能会遇到的坑,我们一起看看吧.   子 ...

随机推荐

  1. ROS+OPENVPN配置

    环境需求:ROS版本:5.26,OPENVPN版本:OpenVPNPortable1.0.3(下载地址http://sourceforge.net/projects/ovpnp/)在WIN7 X64, ...

  2. mysql总结(三)

    select distinct * from 表名where ...group by ...having ...order by ...limit ... 关系的问题(1)是什么样的对应关系(2)存储 ...

  3. OpenMP n 体问题

    ▶ <并行程序设计导论>第六章中讨论了 n 体问题,分别使用了 MPI,Pthreads,OpenMP 来进行实现,这里是 OpenMP 的代码,分为基本算法和简化算法(引力计算量为基本算 ...

  4. ruby gem install rails 错误解决

    最近打算看ruby. 今天用命令gem install rails的时候碰到这样的错误提示: ERROR:  Error installing XXXXXXXXXXX:            The ...

  5. apache 搭建PHP多站点

    修改apache 配置文件:httpd.conf 1.默认 Listen 80端口 2.添加配置如下: <VirtualHost *:80> ServerAdmin admin@yii.c ...

  6. 数据挖掘模型中的IV和WOE详解

    IV: 某个特征中 某个小分组的 响应比例与未响应比例之差 乘以 响应比例与未响应比例的比值取对数 数据挖掘模型中的IV和WOE详解 http://blog.csdn.net/kevin7658/ar ...

  7. 【Git】二、安装配置

    一.Git安装 Linux $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev $ ap ...

  8. SO_KEEPALIVE选项

    [SO_KEEPALIVE选项 ] 对于面向连接的TCP socket,在实际应用中通常都要检测对端是否处于连接中,连接端口分两种情况: 1.连接正常关闭,调用close() shutdown()连接 ...

  9. S——table

    SELECT A.LOGIN,EMAIL_ADDR,LAST_NAMEfrom S_USER AJOIN S_CONTACT B on A.ROW_ID=B.ROW_IDwhere  A.ROW_ID ...

  10. CTC 的工作原理

    CTC 的工作原理     Fig. 1. How CTC  combine a word (source: https://distill.pub/2017/ctc/) 这篇文章主要解释CTC 的工 ...