c++中的虚函数

来源:互联网 发布:安装新的网络打印机啊 编辑:程序博客网 时间:2024/05/29 15:28
#include<iostream>
using namespace std;
/**
  虚函数:virtual 函数返回值 函数名();
  虚函数没有函数体,由子类完成函数体的定义
  要想每个类中重写的执行方法不同,则必须使用 父类*p;
  指向子类对象的地址,这样才能实现运行时多态 
*/
class C
{
  public:
    virtual string toString()
{
 return "class C";
}
};
class B:public C
{
  public:
string toString()
{
return "class B";
}
};
class A:public B
{
public:
string toString()
{
return "class A";
}
};
void displayObject(C *p)
{
cout<<p->toString().data()<<endl;
}
void displayObject1(C p)
{
cout<<p.toString().data()<<endl;
}
int main()
{
//匿名对象 类名(); 
A a=A();
B b=B();
C c=C();
displayObject(&a);
displayObject(&b);
displayObject(&c);
displayObject1(a);
displayObject1(b);
displayObject1(c);
return 0;
}
0 0