返回顶部
首页 > 资讯 > 精选 >C++ 中如何声明和调用虚函数?
  • 895
分享到

C++ 中如何声明和调用虚函数?

c++虚函数 2024-04-12 16:04:05 895人浏览 八月长安
摘要

虚函数是一种多态性机制,允许派生类覆盖其基类的成员函数:声明:在函数名前加上关键字 virtual。调用:使用基类指针或引用,编译器将动态绑定到派生类的适当实现。实战案例:通过定义基类

虚函数是一种多态性机制,允许派生类覆盖其基类的成员函数:声明:在函数名前加上关键字 virtual。调用:使用基类指针或引用,编译器将动态绑定到派生类的适当实现。实战案例:通过定义基类 shape 及其派生类 rectangle 和 circle,展示虚函数在多态中的应用,计算面积和绘制形状。

C++ 中的虚函数

虚函数是一种多态性机制,允许派生类覆盖其基类的成员函数。这使程序员能够在基类中定义通用的行为,同时仍然允许派生类为该行为提供特定于其实例的实现。

声明虚函数

要声明一个虚函数,请在函数名的开头放置关键字 virtual。例如:

class Base {
public:
    virtual void print() const;
};

调用虚函数

调用虚函数,使用基类指针或引用。编译器将动态绑定到派生类的适当实现。例如:

void doSomething(Base* base) {
    base->print();
}

实战案例

下面是一个使用虚函数的示例:

#include <iOStream>

class Shape {
public:
    virtual double area() const = 0;
    virtual void draw() const = 0;
};

class Rectangle : public Shape {
public:
    Rectangle(double width, double height) : width_(width), height_(height) {}
    
    double area() const override { return width_ * height_; }
    void draw() const override { std::cout << "Drawing rectangle" << std::endl; }
    
private:
    double width_;
    double height_;
};

class Circle : public Shape {
public:
    Circle(double radius) : radius_(radius) {}
    
    double area() const override { return 3.14 * radius_ * radius_; }
    void draw() const override { std::cout << "Drawing circle" << std::endl; }
    
private:
    double radius_;
};

int main() {
    Shape* rectangle = new Rectangle(5, 10);
    Shape* circle = new Circle(5);
    
    std::cout << rectangle->area() << std::endl; // Output: 50
    std::cout << circle->area() << std::endl;   // Output: 78.5
    
    rectangle->draw();   // Output: Drawing rectangle
    circle->draw();     // Output: Drawing circle
    
    return 0;
}

以上就是c++ 中如何声明和调用虚函数?的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: C++ 中如何声明和调用虚函数?

本文链接: https://www.lsjlt.com/news/603888.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++ 中如何声明和调用虚函数?
    虚函数是一种多态性机制,允许派生类覆盖其基类的成员函数:声明:在函数名前加上关键字 virtual。调用:使用基类指针或引用,编译器将动态绑定到派生类的适当实现。实战案例:通过定义基类 ...
    99+
    2024-04-12
    c++ 虚函数
  • C++ 中如何声明和使用友元函数?
    c++++ 中的友元函数是一种可访问其他类私有/受保护成员的特殊函数。声明友元函数时需使用 friend 关键字,如:声明友元函数:friend void printvalue(cons...
    99+
    2024-04-12
    c++ 友元函数 封装性
  • JS自定义函数如何声明和调用
    本篇内容主要讲解“JS自定义函数如何声明和调用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS自定义函数如何声明和调用”吧! 函数...
    99+
    2024-04-02
  • C++ 静态函数如何声明?
    静态函数是一种不属于任何类、用于执行辅助任务或提供全局功能的函数。在 c++++ 中,通过以下语法声明静态函数:static type function_name(parameters)...
    99+
    2024-04-16
    c++ 静态函数
  • C++ 函数可以声明为虚函数吗?虚函数的作用是什么?
    c++++中的虚函数允许派生类重新定义从基类继承的方法,实现多态。其语法为:在基类中用virtual关键字声明虚函数,在派生类中用override重新定义。通过指针或引用调用虚函数,可实...
    99+
    2024-04-19
    多态 虚函数 c++
  • C++ 函数声明中的默认参数:全面解析其声明和用法
    c++++ 中的默认参数提供对函数参数指定默认值的功能,从而增强代码可读性、简洁性和灵活性。声明默认参数:在函数声明中将参数后加上 "=" 符号,后跟默认值。用法:函数调用时,若未提供可...
    99+
    2024-05-02
    c++ 默认参数 函数声明 代码可读性
  • C++ 函数的参数的类型如何声明?
    函数参数类型声明在 c++++ 中是必须的,它定义了传递给函数的值的数据类型。常见的类型限定符包括 const、&amp; 和 *,用于指定参数是常量、引用或指针。正确声明参数类...
    99+
    2024-04-19
    c++ 变量类型 函数参数类型
  • ES6中生成器函数的声明与调用
    这篇文章主要介绍ES6中生成器函数的声明与调用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!生成器函数的声明与调用生成器函数是ES6提供的一种异步编程解决方案,与传统函数完全不同,就...
    99+
    2024-04-02
  • C++ 函数调试详解:如何调试虚函数中的问题?
    虚函数调试方法:设置断点单步执行;使用 assert() 验证条件;利用调试器工具检查动态类型、函数栈和重新定义虚函数。 C++ 函数调试详解:如何调试虚函数中的问题? 引言 在 C+...
    99+
    2024-05-02
    c++ 虚函数 函数调试
  • C++中如何声明变量
    本篇文章为大家展示了C++中如何声明变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++变量声明的语法:extern int a;函数声明的语法:extern int func1(int len...
    99+
    2023-06-17
  • java调用math类如何声明
    要调用Math类中的方法,只需在代码中使用Math类的名称,并在方法名前加上类名 Math. 即可。不需要实例化Math类的对象,因...
    99+
    2023-08-14
    java math
  • python如何声明全局函数
    在python中声明全局函数的方法class ClassWithGlobalFunction:global spamdef spam(): return 'eggs'def method(self):global montydef mont...
    99+
    2024-04-02
  • python如何声明多个函数
    在python中使用del关键字声明多个函数,具体方法如下:def f():global xx = 2print xx +=2 def g():global xprint xx += 3f()g()print x...
    99+
    2024-04-02
  • C++ 友元函数详解:如何声明友元类?
    在 c++++ 中,友元类允许一个类的所有成员函数访问另一个类的私有成员。声明友元类时,使用 friend class 关键字,例如:outerclass 声明 内层类 为友元类:fri...
    99+
    2024-04-28
    c++ 友元函数 敏感数据
  • Javascript中怎么实现函数声明与递归调用
    Javascript中怎么实现函数声明与递归调用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、函数声明变量式声明先创建一个匿名函数,然后把...
    99+
    2024-04-02
  • C++中如何使用虚函数
    C++中如何使用虚函数,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。何为虚函数?C++虚函数就是被关键字virtaul说明的函数。举个例子:这个例子中WindowB和Win...
    99+
    2023-06-17
  • C++ 函数声明和定义有什么区别?
    函数声明告知编译器函数的存在,不包含实现,用于类型检查。函数定义提供实际实现,包含函数体。区分的关键特征包括:目的、位置、作用。理解差异对于编写有效且可维护的 c++++ 代码至关重要。...
    99+
    2024-04-18
    c++ 函数定义 函数声明
  • python如何在函数声明中使用默认值
    小编给大家分享一下python如何在函数声明中使用默认值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在函数声明中使用默认值在几乎所有的Python项目中,大多数...
    99+
    2023-06-27
  • 如何在PHP中调用C函数
    如何在PHP中调用C函数?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是 FFIFFI , Foreign Function Interface,外部函数接口。这个扩展...
    99+
    2023-06-15
  • C# 中回调函数如何使用
    本篇文章给大家分享的是有关C# 中回调函数如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是C# 回调函数C# 回调函数是应用程序提供给Windows系统DLL或其它...
    99+
    2023-06-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作