3.(1)
#include<iostream> using namespace std; class Point { public: Point(int a,int b):x(a),y(b){} ~Point(){cout<<"executing Point destructor"<<endl;} private: int x; int y; }; class Circle:public Point { public: Circle(int a,int b,int c):Point(a,b),radus(c){} ~Circle(){cout<<"executing Circle destructor"<<endl;} private: int radus; }; int main() { Point *p=new Circle(1,2); delete p; return 0; }
(2)
#include<iostream> using namespace std; class Point { public: Point(){} ~Point(){cout<<"executing Point destructor"<<endl;} }; class Circle:public Point { public: Circle(){} ~Circle(){cout<<"executing Circle destructor"<<endl;} private: int radus; }; int main() { Circle *p=new Circle; delete p; return 0; }
(3)
#include<iostream> using namespace std; class Point { public: Point(){} virtual ~Point(){cout<<"executing Point destructor"<<endl;} }; class Circle:public Point { public: Circle(){} virtual ~Circle(){cout<<"executing Circle destructor"<<endl;} private: int radus; }; int main() { Point *p=new Circle; delete p; return 0; }
4.
#include<iostream> using namespace std; class Shape { public: Shape(){} virtual void printArea(){} }; class Circle:public Shape { public: Circle(int r):radus(r){} virtual void printArea(){float v=radus*radus*3.14;cout<<v<<endl;} private: int radus; }; class Rectangle:public Shape { public: Rectangle(int w,int l):width(w),long1(l){} virtual void printArea(){float v=width*long1;cout<<v<<endl;} private: int width; int long1; }; class Triangle:public Shape { public: Triangle(int h,int w):high(h),width(w){} virtual void printArea(){float v=width*high/2;cout<<v<<endl;} private: int high; int width; }; int main() { Circle c(3); Rectangle r(2,3); Triangle t(2,3); Shape *p=&c; p->printArea(); p=&r; p->printArea(); p=&t; p->printArea(); return 0; }
5.
#include<iostream> using namespace std; class Shape { public: Shape(){} virtual double printArea()const=0; }; class Circle:public Shape { public: Circle(int r):radus(r){} virtual double printArea()const{float v=radus*radus*3.14;return (v);} private: int radus; }; class Rectangle:public Shape { public: Rectangle(int w,int l):width(w),long1(l){} virtual double printArea()const{float v=width*long1;return (v);} private: int width; int long1; }; class Triangle:public Shape { public: Triangle(int h,int w):high(h),width(w){} virtual double printArea()const{float v=width*high/2;return (v);} private: int high; int width; };