class parent {
public:
void f() { cout << "parent f()" << endl; }
void f(int i) { cout << "parent f(int i)" << endl; }
}; class child :public parent {
};
int main() { child a;
a.f();
a.f();
return ;
}

父类中发生了重载。

子类中如果没有定义名字冲突的成员函数,这时候,父类中的两个函数都可以访问。

class child2 :public parent {
public:
void f() {
cout << "child f()" << endl;
}
};
int main() { child2 a; parent *p = &a;
child2 *c = &a; a.f(); //child f()
a.parent::f(); //parent f()
a.parent::f(); //parent f(2) p->f(); // parent f()
p->f(); // parent f(2) c->f(); // child f()
// c->f(2); illegal return ;
}

有冲突的时候,a只能直接访问自己定义的这个。

父类中的f必须通过a.parent::f这样的方式访问。这三个是并存的。

加了virtual以后呢?

confusing c++ 重写 与 重定义 记录1的更多相关文章

  1. C++重载,重写,重定义

    1.重载:重载是在一个类中,函数名一样,参数类型或参数个数不同的一系列函数需要注意的是,与返回类型无关. class Test { public: void show(); void show(int ...

  2. C++函数重载,重写,重定义

    目录 1 重载 2 重写 3 重定义 4 函数重载二义性   笔者原创,转载请注明出处   C++中经常会提到重载,除了重载,还有重写,重定义,下面对这三个概念逐一进行区分 1 重载   函数重载是同 ...

  3. c++之——重载、重写、重定义

    函数重载: 必须在同一个类中进行: 子类无法重载父类的函数,父类同名函数将被子类名称覆盖: 重载是在编译期间根据参数类型和个数决定函数的调用(静态联编). 函数重写与重定义: 重写: 必须发生在基类和 ...

  4. C++纯虚函数、虚函数、实函数、抽象类,重载、重写、重定义

    首先,面向对象程序设计(object-oriented programming)的核心思想是数据抽象.继承.动态绑定.通过数据抽象,可以使类的接口与实现分离,使用继承,可以更容易地定义与其他类相似但不 ...

  5. C++ 类的多态二(函数重载--函数重写--函数重定义)

    //函数重载--函数重写--函数重定义 #include<iostream> using namespace std; /* 函数重载: 必须在一个类中进行(子类无法重载父类中的函数) 子 ...

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

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

  7. C++ 重载、重写、重定义的区别

    C++ 中 重载.重写.重定义的区别 重载(overload) 定义: 在同一个作用域内,两函数的函数名相同, 参数不相同(可以是参数类型不同或者是参数个数不同), 那么就说这两个 函数重载. 分类: ...

  8. C++ 重载、重写、重定义

    出自:http://blog.163.com/clevertanglei900@126/blog/ 1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virt ...

  9. C++学习笔记 封装 继承 多态 重写 重载 重定义

    C++ 三大特性 封装,继承,多态 封装 定义:封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员,目的在于将对 ...

随机推荐

  1. docker启动时报错Error response from daemon: driver failed programming external connectivity on endpoint *

    公司服务器由于断电重启,部署在docker服务上的一些web服务需要重新开启容器, [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND C ...

  2. [UE4]认识CanvasPanelSlot,Construct Object From Class动态创建UI控件

    Canvas Panel Slot是UserWidget的Canvas Panel组件容器内的组件特有的属性. 只有放置在Canvas Panel容器内才会有Canvas Panel Slot属性 可 ...

  3. [UE4]行为树,组合节点:Selector和Sequence

    行为树节点 一.Composite组合节点: 1.Selector 要求比较低:只要有一个子节点成功就可以了. 只要子节点有一个返回true,则停止执行其它子节点,并且Selector返回true.如 ...

  4. Zabbix故障总结(持续更新)

    Zabbix housekeeper processes more than 75% busy 问题原因 为了防止数据库持续增大,zabbix有个自动删除历史数据的机制,就是housekeeper,而 ...

  5. Centos7 配置ssh连接

    Centos7 配置ssh连接 1.检查是否安装openssh-server:#yum list installed | grep openssh-server 安装openssh-server:#y ...

  6. JSP基础解析

    EL表达式     https://www.cnblogs.com/zhouguanglin/p/8117406.html EL(Expression Language) 是为了使JSP写起来更加简单 ...

  7. 怎样找到微信小程序功能呢?

    怎样找到微信小程序功能呢? 17年1月9号这个功能刚推出时,非常火,但我在微信中迟迟找不到微信小程序功能,微信明明更新到了最新版也没有:后来经过以下步骤才找到这个功能! 1.微信版本不能过低,这个一般 ...

  8. 数据库类型总结对比(Java,Hibernate,SQLServer,MySQL,Oracle)

  9. Java - 14 Java 日期时间

    java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函数接收一个参 ...

  10. Ren'Py视觉小说安装,玩一下吧,上班很闲的话

    ---------------------------------------------------------------------------------------------------- ...