iam*_*ind 1 c++ sizeof member-functions
struct MyClass {
int foo () { return 0; }
};
unsigned int size = sizeof(MyClass::foo); // obviously error
Run Code Online (Sandbox Code Playgroud)
我们可以应用sizeof()到成员方法从外面的class?我们需要声明对象来获取它吗?
编辑:我知道上面的代码会给出错误(这就是为什么单词"显然").想知道我们是否可以将sizeof()应用于成员方法.我不想详细描述用例.
您无法获取成员函数的大小,但可以获取指向成员函数的指针的大小:
int size = sizeof( &MyClass::foo );
Run Code Online (Sandbox Code Playgroud)
对于非成员函数(和静态成员函数)也是如此,无法获得函数的大小.这可能会产生误导,因为在大多数情况下,函数的名称会自动衰减到指向函数的指针,基本上与数组衰减到指向第一个元素的指针的方式相同,但在数组的情况下,sizeof不会触发衰变,这反过来意味着你必须明确地要求指针.