你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

C++中两种调用函数的时机

2022/1/2 4:43:09

忽然想明白很久之前问java老师的一个问题,当时我在类里定义了一个静态成员,直接用赋值号赋为了一个静态成员函数的返回值。就问老师为什么这次函数调用了,却没有让那个静态成员成为想要的值。

今天又写了一行代码,再次出现这个问题:

在全局,我“调用”了一个函数。

后来我用后脑勺想了一下,什么情况下才会调用函数?

一个程序从main函数开始,cs:ip指针是从main函数出发的,所以上述两个地址是无法经过的。

不报错的原因,上图中,是因为赋值号左右类型兼容。

然后就是类的构造函数,在定义类的对象的时候被调用,无论是局部还是全局都可以,把类的对象定义在全局,也是利用类的构造函数在进入main函数之前实现某些功能的一种手段。

总结:

除了main函数之外,

第一种:函数被函数调用

第二种:类的构造函数在全局被调用