正在加载图片...
class Point float x,y: public: Point(f] Point(float i, float D X =i; y=j; 1 virtual float area(void)I return 0.0; 声明为虚函数 输出:92.701 const float pi=3. 14159 class Circle public Point( ∥/类 Point的派生类 float radius public: Circle(float r radius=r; float area(void)i return Pi*radius*radius 虚函数再定义 void main(void) 【 Point*pp;∥)基类指针,可以将派生类对象的地址赋给基类指针 Circle c(5.4321 将area(声明为虚函数,编译器对 pp=&C 调用虚函数 其进行动态聚束,按照实际对象C 调用了 Circle中的函数area()。使 cout<p->area0<end|;∥调用虚数 Point类中的aea0与Cce类中的 area(有一个统一的接口。class Point{ float x,y; public: Point(){ } Point(float i,float j){ x=i; y=j; } virtual float area(void) { return 0.0; } }; const float Pi=3.14159; class Circle:public Point{ //类Point的派生类 float radius; public: Circle(float r){ radius=r; } float area(void) { return Pi*radius*radius;} }; void main(void) { Point *pp; //基类指针,可以将派生类对象的地址赋给基类指针 Circle c(5.4321); pp=&c; cout<<pp->area ()<<endl; //调用虚函数 } 27 将area()声明为虚函数,编译器对 其进行动态聚束,按照实际对象c 调用了Circle中的函数area()。使 Point类中的area()与Circle类中的 area()有一个统一的接口。 声明为虚函数 输出:92.7011 调用虚函数 虚函数再定义
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有