48-同名覆盖引发的问题
来源:互联网 发布:数据库原理中的设计题 编辑:程序博客网 时间:2024/06/01 07:42
1、父子间的赋值兼容
#include <iostream>#include <string>using namespace std;class Parent{public: int mi; void add(int i) { mi += i; } void add(int a, int b) { mi += (a + b); }};class Child : public Parent{public: int mv; void add(int x, int y, int z) { mv += (x + y + z); }};int main(){ Parent p; Child c; p = c; Parent p1(c); Parent& rp = c; Parent* pp = &c; rp.mi = 100; rp.add(5); // 没有发生同名覆盖? rp.add(10, 10); // 没有发生同名覆盖? /* 为什么编译不过? 编译器未找到*/ // pp->mv = 1000; // pp->add(1, 10, 100); return 0;}hellp.cpp:51:10: error: ‘class Parent’ has no member named ‘mv’ pp->mv = 1000; ^hellp.cpp:52:24: error: no matching function for call to ‘Parent::add(int, int, int)’ pp->add(1, 10, 100);
2、
Parent& rp = c;
Parent* pp = &c;
所以rp 和pp只能访问父类成员和函数
3、特殊的同名函数(重写override)
4、思考
#include <iostream>#include <string>using namespace std;class Parent{public: int mi; void add(int i) { mi += i; } void add(int a, int b) { mi += (a + b); } void print() { cout << "I'm Parent." << endl; }};class Child : public Parent{public: int mv; void add(int x, int y, int z) { mv += (x + y + z); } void print() { cout << "I'm Child." << endl; }};void how_to_print(Parent* p){ p->print();}int main(){ Parent p; Child c; how_to_print(&p); // Expected to print: I'm Parent. how_to_print(&c); // Expected to print: I'm Child. return 0;}I'm Parent.I'm Parent.
5、
6、
7、思考
合理,不是自己期望的结果
8、
阅读全文
0 0
- 48-同名覆盖引发的问题
- JavaScript函数同名覆盖问题
- spring同名bean覆盖问题
- Spring同名bean覆盖问题
- android 软件覆盖安装引发的问题
- Linux Device Tree 同名覆盖问题
- 同名覆盖
- 上下级控件同名引发的血案
- 【MySQL】浅析临时表和永久表同名引发的问题
- 类的同名覆盖和函数重载
- java中子类与父类的同名变量覆盖问题
- 同名函数的调用问题
- 多继承同名覆盖
- 同名函数覆盖
- js中同名函数和同名变量的执行问题
- C++ 同名隐藏、覆盖,虚函数 的详解和对比
- perl 当前包会覆盖父类的同名方法
- C++中继承技术引发的问题:重载(overload),覆盖(override)和隐藏(hide)的区别
- hadoop记录篇6-数据仓库hive
- PAT考试乙级1009(C语言实现)
- J-Link在SWD模式与MCU能连接成功但不能读写
- Android 对于AutoLayout的一点小优化
- java中文乱码解决之道(七)-----JSP页面编码过程
- 48-同名覆盖引发的问题
- Android往Web服务器发送文件
- mysql主从设置
- IEEE JBHI 投稿因格式问题打回记录
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
- C++ #include的各种区别
- 分布式架构演进
- linux下使用commons-net ftp的总结
- Unity Custom PBR材质