C++11: final与override
-
C++11中增加了final与override关键字,貌似是从Java语言中借鉴而来,用途也一样。看例子代码:
01.
#include <iostream>
02.
03.
using
namespace
std;
04.
05.
/* use final on a class to prevent inheriting; compilation error */
06.
class
A
/* final */
{
07.
public
:
08.
/* use final on a method to prevent override; compilation error */
09.
virtual
void
func(
int
)
/* final */
{ cout <<
"A::func()"
<< endl; }
10.
};
11.
12.
class
B :
public
A {
13.
public
:
14.
/* use override to make the compiler checks that we are indeed overriding an inherited method */
15.
virtual
void
func(
int
) override { cout <<
"B::func()"
<< endl; }
16.
17.
/* virtual void func(char) override {} compilation error; new method (see signature), does not override existing */
18.
};
19.
20.
int
main() {
21.
A t;
22.
t.func(2);
23.
24.
B u;
25.
u.func(3);
26.
}
程序输出:
A::func()
B::func()
分类:
C++11
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人