C++ 虚函数和友元函数示例:定义抽象类和继承关系
C++ 虚函数和友元函数示例:定义抽象类和继承关系
本示例代码演示了 C++ 中虚函数和友元函数的用法,并展示了如何定义抽象类和继承关系。代码通过 Shape 和 Rectangle 类,解释了如何使用虚函数计算面积,以及如何使用友元函数输出矩形信息。
#include <iostream>
using namespace std;
class Shape {
public:
virtual float area() = 0;
};
class Rectangle : public Shape {
private:
float width;
float height;
public:
Rectangle(float w, float h) : width(w), height(h) {}
virtual float area() { return width * height; }
friend ostream& operator<<(ostream& os, const Rectangle& r) {
os << 'Rectangle: width=' << r.width << ', height=' << r.height;
return os;
}
};
int main() {
Shape* s = new Rectangle(3.0, 4.0);
cout << *s << ', area=' << s->area() << endl;
delete s;
return 0;
}
以上代码定义了一个 Shape 类和一个 Rectangle 类。Shape 类是一个抽象类,包含一个纯虚函数 area(),用于计算形状的面积。Rectangle 类继承自 Shape 类,并实现了 area() 函数,同时还定义了一个友元函数 operator<<,用于输出矩形的宽度和高度。
在主函数中,我们定义了一个 Shape 类型的指针 s,指向一个 Rectangle 对象。然后我们通过 *s 和 s->area() 调用 Rectangle 类和 Shape 类中的函数,输出矩形的信息和面积。最后我们还需要手动释放 s 所指向的内存。
这个示例代码展示了如何使用虚函数和友元函数,以及如何定义抽象类和继承关系。
原文地址: https://www.cveoy.top/t/topic/nQNm 著作权归作者所有。请勿转载和采集!