Amu*_*umu 5 c++ class static-members
据我所知,类的每个实例在内存中都有自己的成员变量,因此它可以为不同的对象存储不同的值.但是,成员函数不一样.成员函数在类的对象之间重用,因此它只有一个地址和一个内存块,以便在所有对象需要时引用.
静态函数用于访问静态成员.但是,静态函数在其应用程序的生命周期中也只存在一个.除了作为静态访问器之外,在低级别它与普通的类功能没有区别,不是吗?或许我错了,每个班级都有自己的功能?
这因语言而异,但在 C 或 C++03 中,函数通常映射到汇编函数;也就是说,它们在内存中存在一次(无论是自由函数、类函数还是类静态函数),并接受参数作为参数,包括this隐式成员函数的指针。
在 C++11 中,lambda 函数引入了一个新奇之处:所谓函数的每个实例都将携带一些状态。从实现的角度来看,这意味着需要创建一个“常规”函数,并将其与匿名数据包相关联(如果需要)。每次创建 lambda 时,不需要复制函数,但数据需要复制。一个有用的数字是记住 lambda(在 C++ 中)取代了函数对象(或谓词对象):它们只是语法糖,实现是相似的。