三种调用虚函数的方式比较
来源:互联网 发布:中超球员籍贯数据 编辑:程序博客网 时间:2024/06/01 07:36
#include <iostream>
using namespace std;
class father
{
public:
virtual void run()const{cout<<"父亲可以跑万米\n";} //将该函数说明为虚函数
};
class son:public father
{
public:
void run()const{cout<<"儿子可以跑十万米\n";}
};
class daughter:public father
{
public:
void run()const{cout<<"女儿可以跑十万米\n";}
};
void one(father); //该函数原型中声明一个指向father类的对象
void two(father*); //该函数原型中声明一个指向father类的指针
void three(father&); //该函数原型中声明一个指向father的引用
void main()
{
father *p=0;
int choice;
while(1)
{
bool quit=false;
cout<<"(0)quit (1)son (2)daughter (3)father:";
cin>>choice;
switch(choice)
{
case 0:quit=true;
break;
case 1:p=new son;
one(*p); //将对象作为参数传递给函数one()中
break;
case 2:p=new daughter;
two(p); //将对象的内存地址传递到函数two()中
break;
case 3:p=new father;
three(*p); //将对象的引用传递到函数three()中
break;
default:cout<<"请输入0到3之间的数字\n";
break;
}
if (quit)
break;
}
}
void one(father one) //函数头中接收一个指向father的对象
{
one.run(); //用该对象访问run函数
}
void two(father *two) //函数头中接收一个指向father的指针
{
two->run(); //用该指针访问run()函数
}
void three (father &three) //函数头中接收一个指向father的引用
{
three.run(); //用该引用访问run()函数
}
using namespace std;
class father
{
public:
virtual void run()const{cout<<"父亲可以跑万米\n";} //将该函数说明为虚函数
};
class son:public father
{
public:
void run()const{cout<<"儿子可以跑十万米\n";}
};
class daughter:public father
{
public:
void run()const{cout<<"女儿可以跑十万米\n";}
};
void one(father); //该函数原型中声明一个指向father类的对象
void two(father*); //该函数原型中声明一个指向father类的指针
void three(father&); //该函数原型中声明一个指向father的引用
void main()
{
father *p=0;
int choice;
while(1)
{
bool quit=false;
cout<<"(0)quit (1)son (2)daughter (3)father:";
cin>>choice;
switch(choice)
{
case 0:quit=true;
break;
case 1:p=new son;
one(*p); //将对象作为参数传递给函数one()中
break;
case 2:p=new daughter;
two(p); //将对象的内存地址传递到函数two()中
break;
case 3:p=new father;
three(*p); //将对象的引用传递到函数three()中
break;
default:cout<<"请输入0到3之间的数字\n";
break;
}
if (quit)
break;
}
}
void one(father one) //函数头中接收一个指向father的对象
{
one.run(); //用该对象访问run函数
}
void two(father *two) //函数头中接收一个指向father的指针
{
two->run(); //用该指针访问run()函数
}
void three (father &three) //函数头中接收一个指向father的引用
{
three.run(); //用该引用访问run()函数
}
- 三种调用虚函数的方式比较
- JavaScript函数定义的三种方式及其调用
- 【JS】Js中函数的三种调用方式
- 单例,函数的三种调用方式
- 自调用匿名函数的三种创建方式
- javascript三种函数调用方式
- javascript三种函数调用方式
- C/C++中几种函数调用方式的比较
- 三种线程同步方式的比较
- JSP三种跳转方式的比较
- 关于三种分页方式的比较
- 三种深度拷贝方式的比较
- 三种方式遍历的比较
- jdbc statement 三种方式的比较
- 类加载的三种方式比较
- 【c和指针学习笔记】函数指针的初始化以及函数调用的三种方式
- (转载)函数调用方式比较
- c/c++函数调用传递方式比较
- 解决Myeclipse的使用权限 获取注册码
- V$PROCESS
- 深度优先遍历算法的非递归
- XZ Utils 介绍
- 修改hostname的若干方法
- 三种调用虚函数的方式比较
- [技巧]你会做Web上的用户登录功能吗?
- adb server didn't ack解决方法
- 网页去重
- 通过阅读别人的代码轻松提高自己的编程能力
- Creating INF Files for Multiple Platforms and Operating Systems
- 设计模式之观察者模式(一)
- paypal kraken-js
- 用R和BioConductor进行基因芯片数据分析(四):芯片内归一化