虚函数(virtual)为啥不能是static

虚函数(virtual)为啥不能是static

静态成员函数,可以不通过对象来调用,即没有隐藏的this指针。

virtual函数一定要通过对象来调用,即有隐藏的this指针。

static成员没有this指针是关键! static function都是静态决议的(编译的时候就绑定了) 而virtual function 是动态决议的(运行时候才绑定)

例证

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#include

#include

using

namespace

std;

class

A

{

public

:

A(

int

a) {

this

->val2 = a; }

static

void

get_val() {

this

->val2 = 4; cout <<

"hello"

<< val << endl; }

private

:

static

int

val;

int

val2;

};

int

A::val = 4;

int

main()

{

A a(2);

a.get_val();

}

编译错误

本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/3616956.html,如需转载请自行联系原作者

相关推荐

微信小程序内容发布指南:步骤与技巧详解
365bet官网

微信小程序内容发布指南:步骤与技巧详解

📅 08-26 👁️ 1172
跷的解释
365bet官网

跷的解释

📅 07-10 👁️ 6273
2025年歐洲女子足球錦標賽
365bet娱乐场手机版

2025年歐洲女子足球錦標賽

📅 08-08 👁️ 9063
新华字典:棪
365bet官网

新华字典:棪

📅 06-29 👁️ 3945
升级dubbo,小心default.version!
365bet官网

升级dubbo,小心default.version!

📅 10-24 👁️ 9764
心电图PR正常值是多少
365账号禁止投注

心电图PR正常值是多少

📅 10-01 👁️ 5735