legongju.com
我们一直在努力
2024-12-26 21:02 | 星期四

c++实现抽象类方法

在C++中,抽象类是一种不能被实例化的类,它通常包含一个或多个纯虚函数

#include 

// 定义一个抽象类 Shape
class Shape {
public:
    // 构造函数
    Shape() {
        std::cout << "Shape 构造函数被调用" << std::endl;
    }

    // 虚析构函数
    virtual ~Shape() {
        std::cout << "Shape 析构函数被调用" << std::endl;
    }

    // 纯虚函数,计算面积
    virtual double area() const = 0;

    // 纯虚函数,计算周长
    virtual double perimeter() const = 0;
};

// 定义一个派生类 Circle,继承自 Shape
class Circle : public Shape {
public:
    // 构造函数
    Circle(double radius) : radius_(radius) {
        std::cout << "Circle 构造函数被调用" << std::endl;
    }

    // 析构函数
    ~Circle() {
        std::cout << "Circle 析构函数被调用" << std::endl;
    }

    // 实现纯虚函数 area
    double area() const override {
        return 3.14159 * radius_ * radius_;
    }

    // 实现纯虚函数 perimeter
    double perimeter() const override {
        return 2 * 3.14159 * radius_;
    }

private:
    double radius_;
};

int main() {
    // 由于 Shape 是抽象类,不能实例化对象
    // Shape shape; // 错误

    // 创建一个 Circle 对象
    Circle circle(5.0);

    // 调用 area 和 perimeter 方法
    std::cout << "面积: " << circle.area() << std::endl;
    std::cout << "周长: " << circle.perimeter() << std::endl;

    return 0;
}

在这个例子中,我们定义了一个抽象类 Shape,它包含两个纯虚函数 area()perimeter()。然后我们定义了一个派生类 Circle,继承自 Shape,并实现了这两个纯虚函数。在 main() 函数中,我们创建了一个 Circle 对象,并调用了它的 area()perimeter() 方法。注意,我们不能创建 Shape 类的对象,因为它是一个抽象类。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/58056.html

相关推荐

  • 如何优化c++ rpc框架的性能

    如何优化c++ rpc框架的性能

    优化C++ RPC(远程过程调用)框架的性能是一个复杂的过程,涉及到多个方面。以下是一些建议,可以帮助你提高C++ RPC框架的性能: 选择高效的序列化/反序列化库:...

  • c++ rpc框架的主要特性有哪些

    c++ rpc框架的主要特性有哪些

    C++ RPC(远程过程调用)框架的主要特性包括以下几个方面: 跨语言与跨平台:C++ RPC框架通常支持多种编程语言,如C++、Java、Python等,这提供了更好的可扩展性...

  • c++ rpc框架的安全性怎样保障

    c++ rpc框架的安全性怎样保障

    C++ RPC(远程过程调用)框架的安全性保障是一个复杂且关键的问题。以下是一些建议,可以帮助确保C++ RPC框架的安全性: 身份验证和授权: 实现强大的身份验证机...

  • c++ rpc框架的性能表现如何

    c++ rpc框架的性能表现如何

    C++ RPC(远程过程调用)框架的性能表现通常取决于多个因素,包括框架的设计、实现、网络条件、硬件性能以及应用程序的具体需求。以下是一些可能影响C++ RPC框架...

  • android threadlocal如何避免内存泄漏

    android threadlocal如何避免内存泄漏

    ThreadLocal是Android中用于实现线程局部变量的类,它允许你在不同的线程之间存储和访问线程特有的数据。然而,如果不正确地使用ThreadLocal,可能会导致内存泄漏...

  • android threadlocal数据如何同步

    android threadlocal数据如何同步

    在Android中,ThreadLocal提供了一种在多线程环境下存储线程局部变量的机制。然而,ThreadLocal本身并不提供同步机制,因此在使用ThreadLocal时需要注意数据同步...

  • java命令行参数如何用

    java命令行参数如何用

    在Java程序中,可以通过main方法的参数(命令行参数)来接收外部传递给程序的数据。命令行参数以字符串数组的形式传递给main方法,数组的第一个元素是程序名称,...

  • java命令行参数怎么设置

    java命令行参数怎么设置

    在Java程序中,可以通过命令行参数来传递一些额外的配置信息给程序。命令行参数是在启动Java应用程序时,传递给JVM的一些参数。这些参数可以在程序中使用args数组...