可以来看本人关于类与对象的学习笔记
程序功能:程序中已经构建好了一个基类Building,用来存储一座楼房的层数、房间数以及它的总平方英尺数。现需要建立派生类Housing,公有继承Building,并存储下面的内容:卧室和浴室的数量。请按下列要求完成相应操作,然后编制应用程序,建立住宅楼对象,并输出有关数据。
(1)定义派生类Housing的私有数据成员bedrooms和bathrooms,分别表示卧室数和浴室数,它们都是int数据类型。
(2)完成派生类Housing的构造函数的定义,并实现数据成员的初始化。
(3)完成派生类Housing的成员函数show的定义,将Housing对象的值输出到屏幕上。
(4)编写主函数,创建Housing对象hob,并初始化数据成员为(5,7,140,2,2)。程序运行结果如下。
Housing:
floors:5
rooms:7
total area:140
bedrooms:2
bathrooms:2
#include<iostream>
using namespace std;
class Building
{
public:
protected: //这里成员变量得定义为protected或public,不然下面公有继承不了
int floors, rooms;
float total_area;
private:
};
class Housing :public Building
{
public:
Housing(int fl,int room,float area,int bed,int bath)
{
floors = fl;
rooms = room;
total_area = area;
bedrooms = bed;
bathrooms = bath;
}
void show() const
{
cout << "floors:" << floors << endl;
cout << "rooms:" << rooms << endl;
cout << "total_area:" << total_area << endl;
cout << "bedrooms:" << bedrooms << endl;
cout << "bathrooms:" << bedrooms << endl;
}
private:
int bedrooms, bathrooms;
};
int main()
{
Housing hob(5, 7, 140, 2, 2);
hob.show();
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
程序功能:构建一个基类Shape类,它是一个表示形状的抽象类,area()为求图形面积的虚函数。请从Shape类公有派生矩形类(Rectangle),然后编制应用程序建立矩形类对象,求矩形的面积并输出它们的有关数据。
(1)定义Shape类的保护数据成员length和breadth,表示形状的长度和宽度,均为int数据类型。
(2)定义Shape类的带参构造函数Shape(int x,int y),并初始化数据成员length和breadth为x和y。
(3)定义Shape类的公有成员函数area(),并设置为虚函数。
(4)完成派生类Rectangle的构造函数的定义,实现数据成员的初始化。
(6)完成派生类Rectangle的成员函数area的定义,求矩形面积,并屏幕输出矩形的长、宽和面积。
(7)编写主函数,创建Rectangle对象r,并初始化数据成员为(3,5),然后向r对象发送area消息。程序运行结果如下:
Rectangle:
length:3
breadth:5
area:15
#include<iostream>
using namespace std;
class Shape {
public:
Shape() {};
Shape(int x, int y)
{
length = x;
breadth = y;
}
virtual void area()=0
{
}
protected:
int length, breadth;
private:
};
class Rectangle :public Shape
{
public:
Rectangle() {};
Rectangle(int x,int y)
{
length = x;
breadth = y;
}
void area()
{
cout << "Rectangle:" << endl;
cout << " length:" << length << endl;
cout << " breadth:" << breadth << endl;
cout << " area:" << length * breadth << endl;
}
};
int main()
{
Rectangle r(3,5);
r.area();
return 0;
}
-------------------------------------------------------------------------------------------------------------------------------
程序功能:构建一个基类Shape类,它是一个表示形状的抽象类,area()为求图形面积的虚函数。请从Shape类公有派生出圆类(Circle)和三角形类(Triangle),然后编制应用程序,建立圆类和三角形类对象,求圆和三角形的面积,并输出它们的有关数据。
(1)定义Shape类的公有成员函数area,并设置为虚函数。
(2)定义派生类Circle的私有数据成员r和s,分别表示圆的半径和面积,均为float型。
(3)定义派生类Triangle的私有数据成员w、h和s,分别表示三角形的底、高和面积,均为float型。
(4)分别完成派生类Circle和Triangle的构造函数的定义,实现数据成员的初始化。
(5)分别完成派生类Circle和Triangle的成员函数area的定义,求圆和三角形面积,并屏幕输出圆半径、面积,三角形底边、高和面积。
(6)编写主函数,创建Circle类对象c(5)和Triangle类对象t(3,4),向对象c和t分别发送area消息。程序运行结果如下。
圆半径:5 圆面积:78.5
三角形底边:3 三角形高:4 三角形面积:6
#include<iostream>
using namespace std;
const double PI = 3.14;
class Shape {
public:
virtual void area() = 0
{
}
};
class Circle :public Shape
{
public:
Circle() {};
Circle(float r)
{
this->r = r;
}
void area()
{
cout << "圆半径:" <<r<< " ";
cout << "圆面积:" << PI * r * r << endl;
}
private:
float r, s;
};
class Triangle :public Shape
{
public:
Triangle() {};
Triangle(float w,float h)
{
this->w = w;
this->h = h;
}
void area()
{
cout << "三角形底边:" << w << " ";
cout << "三角形高:" << h << " ";
cout << "三角形面积:" << 0.5 * w * h << endl;
}
private:
float w, h, s;
};
int main()
{
Circle c(5);
c.area();
Triangle t(3, 4);
t.area();
return 0;
}