[C++]多态的使用
来源:互联网 发布:阿里云服务器域名备案 编辑:程序博客网 时间:2024/05/16 04:35
#include <stdio.h>
#include <iostream>
#include <string>
using
namespace
std;
class
base {
public
:
virtual
void
print() {
cout<<
"it is in base::print"
<<endl;
}
virtual
~base(){}
};
class
son:
public
base {
public
:
virtual
void
print() {
cout<<
"it is in son::print"
<<endl;
}
virtual
~son(){}
};
class
grandson:
public
son {
public
:
virtual
void
print() {
cout<<
"it is in grandson::print"
<<endl;
}
virtual
~grandson(){}
};
void
fun(base arge) {
//基类对print()的调用
arge.print();
}
void
func(base& arge) {
//静态多态
arge.print();
}
void
func_t(base* arge){
//动态多态
arge->print();
}
int
main() {
base a;
son b;
grandson c;
func_t(&a);
func_t(&b);
func_t(&c);
base d;
son e;
grandson f;
func(d);
func(e);
func(f);
return
0;
}
要实现多态(动态绑定),必须满足以下之一
1、使用指针调用
2、使用引用调用
1、使用指针调用
2、使用引用调用
对多态的使用。
建立一个父类的对象,它的内容可以是这个父类的,也可以是它的子类的,
当子类拥有和父类同样的函数,当使用这个对象调用这个函数的时候,
定义这个对象的类(也就是父类)里的同名函数将被调用,
当在父类里的这个函数前加virtual关键字,那么子类的同名函数将被调用。
- [C++]多态的使用
- 使用继承的多态(C#)
- C++:类的多态与虚函数的使用
- C#OOP之七 多态的学习和使用
- Pro*C的使用
- Pro * C 的使用
- “extern c”的使用
- C#split的使用
- Pro * C 的使用
- Pro*C的使用
- extern “C”的使用
- C++namespace的使用
- Pro*C的使用
- c#treeview的使用
- extern "C"的使用
- extern "C"的使用
- KEIL c 的使用
- c#ComfigurationManager的使用
- ExpressJS入门指南(二)
- 喷喷计算机语言掌握的程度
- 第三届蓝桥杯复赛题解析
- javascript 节点操作及属性和方法
- 正则表达式和反射的学习
- [C++]多态的使用
- Oracle开发之数据表主键与rowid的一点认识
- vim 单词高亮
- 二叉树实现详解
- Thinking in Java之List接口、ArrayList类源码学习
- OSG已经编译好的库在哪里有?
- Ubuntu上搭建Hadoop环境(单机版)
- web.xml 详解
- A* 算法复习