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;
};