全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C++中的final关键字用在类和方法上有什么区别?(代码示例)

final在C++中用于禁止继承或重写:修饰类时置于类名后,禁止派生;修饰虚函数时置于声明末尾,禁止重写。final不可用于非虚函数,可与override共用且须在override之后。

final 在 C++ 中用于明确禁止继承或重写,但它作用在类和成员函数上时语义不同:用在类名后表示该类不可被继承;用在虚函数声明末尾表示该函数不可被派生类重写。

final 修饰类:禁止继承

在类定义的末尾加上 final,编译器会拒绝任何尝试从它派生新类的代码。

class Base final {
public:
    virtual void func() { }
};

class Derived : public Base {  // ❌ 编译错误:不能从 final 类 Base 派生
};

final 修饰虚函数:禁止重写

只能用于虚函数(包括纯虚函数)的声明末尾,表示该函数在当前类中是“最终版本”,派生类不得提供新实现。

class Base {
public:
    virtual void func() { }
    virtual void func2() final { }  // ✅ 禁止派生类重写 func2
};

class Derived : public Base {
public:
    void func() override { }        // ✅ 允许重写 func
    void func2() override { }       // ❌ 编译错误:func2 是 final 的
};

常见组合与注意点

  • final 类中的虚函数自动成为 final(无需显式写),但显式写出更清晰
  • override 和 final 可同时出现,且 final 必须写在 override 之后void f() override final
  • 非虚函数不能加 final —— 编译器报错,因为非虚函数本就不能被“多态重写”
  • final 不影响函数调用,只约束继承体系的设计意图

实际用途

提高设计安全性:防止意外继承破坏封装,或避免关键行为被误改。比如工具类、策略基类的某些核心接口,或性能敏感路径上禁止动态调度的函数。

立即学习“C++免费学习笔记(深入)”;


# 工具  # c++  # 区别  # 编译错误  # 封装  # 多态  # 成员函数  # void  # 继承  # 虚函数  # 纯虚函数  # 接口  # 重写  # 用在  # 派生类  # 类中  # 就不能  # 报错  # 但它  # 写在  # 可与  # 上时 


相关文章: 一键网站制作软件,义乌购一件代发流程?  建站主机如何选?性能与价格怎样平衡?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  企业微网站怎么做,公司网站和公众号有什么区别?  *服务器网站为何频现安全漏洞?  济南网站制作的价格,历城一职专官方网站?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何选择靠谱的建站公司加盟品牌?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  建站之星如何取消后台验证码生成?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  如何做静态网页,sublimetext3.0制作静态网页?  如何快速查询网站的真实建站时间?  ,有什么在线背英语单词效率比较高的网站?  建站主机系统SEO优化与智能配置核心关键词操作指南  建站之星收费标准详解:套餐费用及年费价格表一览  高防服务器租用如何选择配置与防御等级?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何自定义建站之星网站的导航菜单样式?  官网网站制作腾讯审核要多久,联想路由器newifi官网  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  如何用西部建站助手快速创建专业网站?  平台云上自主建站:模板化设计与智能工具打造高效网站  制作农业网站的软件,比较好的农业网站推荐一下?  C#怎么创建控制台应用 C# Console App项目创建方法  制作企业网站建设方案,怎样建设一个公司网站?  制作网站的公司有哪些,做一个公司网站要多少钱?  建站之星如何通过成品分离优化网站效率?  建站主机选购指南与交易推荐:核心配置解析  如何快速查询域名建站关键信息?  Python lxml的etree和ElementTree有什么区别  建站之星如何保障用户数据免受黑客入侵?  建站之星展会模板:智能建站与自助搭建高效解决方案  盘锦网站制作公司,盘锦大洼有多少5G网站?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  如何快速使用云服务器搭建个人网站?  建站之星安装后如何自定义网站颜色与字体?  Python路径拼接规范_跨平台处理说明【指导】  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  建站之星好吗?新手能否轻松上手建站?  建站之星后台管理如何实现高效配置?  如何高效搭建专业期货交易平台网站?  网站专业制作公司有哪些,做一个公司网站要多少钱?  c# 在高并发场景下,委托和接口调用的性能对比  javascript基本数据类型及类型检测常用方法小结  完全自定义免费建站平台:主题模板在线生成一站式服务 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。