Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions C++.md
Original file line number Diff line number Diff line change
Expand Up @@ -1142,7 +1142,7 @@ c++没有强制规定虚函数的实现方式。**编译器中主要用虚表指

①**友元函数**不是虚函数,因为友元函数不是类成员,只有类成员才能使虚函数。

②**静态成员函数**不能是虚。在C++中,静态成员函数不能被声明为virtual函数。首先会编译失败,也就是不能同过编译
②**静态成员函数**不能是虚。在C++中,静态成员函数不能被声明为virtual函数。首先会编译失败,也就是不能通过编译

原因如下:

Expand All @@ -1165,7 +1165,7 @@ c++没有强制规定虚函数的实现方式。**编译器中主要用虚表指

- **编译器如何处理虚函数表**

对于派生类来说,编译器简历虚表的过程有三步
对于派生类来说,编译器建立虚表的过程有三步

1. 拷贝基类的虚函数表,如果是多继承,就拷贝每个基类的虚函数表
2. 查看派生类中是否有重写基类的虚函数,如果有,就替换成已经重写后的虚函数地址
Expand Down