1、定义CRectangle类,有length和width及求长方形面积的成员函数Area。再定义CRectangle派生类CBox,它包含新数据成员height和求长方体体积的成员函数Volume。在main函数中,使用两个类,求某长方形面积和某长方体体积。
个人实现:
#include<iostream>
using namespace std;
class CRectangle
{
public:
CRectangle(int a ,int b)
{
length = a;
width = b;
}
int Area()
{
return length * width;
}
int length;
int width;
};
class CBox: public CRectangle
{
public://注意public放在顶部
CBox(int a, int b,int c) : CRectangle(a, b),height(c)
//使用初始化列表调用父类构造函数和自身成员变量赋值
{
}
int Volume()
{
return Area() * height;
}
int height;
};
int main()
{
CRectangle s(10,10);
CBox box(10,10,5);
cout<<"长方形的面积为"<<s.Area()<<endl;
cout<<"长方体的体积为"<<box.Volume()<<endl;
}
2,定义一图形CShape类,其中有成员数据:宽度width和高度height,带构造函数。并建立两个派生类:矩形类和等腰三角形类。派生类中都包含一函数Area,分别用来计算矩形和等腰三角形的面积。
个人实现代码:
#include<iostream>
using namespace std;
//2、定义一图形CShape类,其中有成员数据:宽度width和高度height,带构造函数。并建立两个派生类
//:矩形类和等腰三角形类。派生类中都包含一函数Area,分别用来计算矩形和等腰三角形的面积。
#include<iostream>
using namespace std;
//2、定义一图形CShape类,其中有成员数据:宽度width和高度height,带构造函数。并建立两个派生类
//:矩形类和等腰三角形类。派生类中都包含一函数Area,分别用来计算矩形和等腰三角形的面积。
class CShape
{
public:
CShape(int a, int b)
{
width = a;
height = b;
}
double width;
double height;
};
class juxing :public CShape
{public:
juxing(int a, int b) : CShape(a, b) {}
double Area()
{
return width * height;
}
};
class sanjiao :public CShape
{public:
sanjiao(int a, int b) : CShape(a, b){}
double Area()
{
return 0.5*width * height;
}
};
void test()
{
juxing a(5.0,5.0);
sanjiao b(5.0,5.0);
cout << "矩形面积:" << a.Area() << endl;
cout << "三角形面积:" << b.Area() << endl;
}
int main()
{
test();
return 0;
}
实例代码:
#include <iostream>
// CShape类定义
class CShape {
public:
CShape(double w, double h) : width(w), height(h) {}
virtual double Area() const = 0; // Pure virtual function
protected:
double width;
double height;
};
// Rectangle类定义
class Rectangle : public CShape {
public:
Rectangle(double w, double h) : CShape(w, h) {}
double Area() const override { // Override virtual function from CShape
return width * height;
}
};
// IsoscelesTriangle类定义
class IsoscelesTriangle : public CShape {
public:
IsoscelesTriangle(double w, double h) : CShape(w, h) {}
double Area() const override { // Override virtual function from CShape
return 0.5 * width * height; // 对于等腰三角形,我们只需要底和高中的较小值作为宽度,然后乘以高度的一半。
}
};
int main() {
Rectangle rect(10.0, 5.0); // 创建一个矩形,宽度为10,高度为5
IsoscelesTriangle tri(10.0, 5.0); // 创建一个等腰三角形,宽度(底)为10,高度为5(高)
std::cout << "矩形的面积为: " << rect.Area() << std::endl; // 输出矩形的面积
std::cout << "等腰三角形的面积为: " << tri.Area() << std::endl; // 输出等腰三角形的面积
return 0;
}