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 所指向的内存。

这个示例代码展示了如何使用虚函数和友元函数,以及如何定义抽象类和继承关系。

C++ 虚函数和友元函数示例:定义抽象类和继承关系

原文地址: https://www.cveoy.top/t/topic/nQNm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录