Skip to content

Commit da40ded

Browse files
authored
Update virtual.md
1 parent f85fc5e commit da40ded

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

docs/c-cpp/basics/virtual.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,12 @@ int main()
8383

8484
没有使用`virtual`声明的基类接口,派生类无法重写该接口,使用**基类指针/引用**调用时总是调用基类的接口。
8585

86-
!!! C++的认知烦恼
86+
!!! note "C++的认知烦恼"
8787

88+
``` cpp
8889
virtual void v_test() final { cout << "A::v_test" << endl; }
90+
```
91+
8992
这个是C++编译器或者标准中没法避免的语义上的错误,既然定义为抽象接口就是可以重写(override)的,但是语法上又支持使用final来限制重写。
9093

91-
当然,这个本意是想确保子类从父类继承下来的抽象接口不再被改写。
94+
当然,这个本意是想确保子类从父类继承下来的抽象接口不再被改写。

0 commit comments

Comments
 (0)