C++ 成员函数的内存分配问题

C++ 里成员函数的内存如何分配。以及和派生类的成员函数是如何分配。比如派生类的成员函数(从基类派生的)是有自己的一份拷贝还是和基类指向的是同一份... 下面的代码: class aa { void bb(){}; void dd(){} }; void cc(){}; void main() { cout<<&aa::bb<<&aa::dd<<endl; cout<<&cc<<endl; } 这样输入的结果是aa::bb和aa::dd的地址都是1,而cc的地址是一个正常的地址.
2026年09月22日 22:29
有1个网友回答
网友(1):

鄙人认为是cout对输出重载的问题,而不是类函数地址分配问题,准确地说,任何类函数的地址都是静态的,派生和基类所谓覆盖和虚函数,都是针对虚函数表的操作,所以通过一般方法也能得到类函数地址: #include #include using namespace std; struct aa { void bb(){ cout << "a\n"; }; void dd(){ cout << "b\n"; }; }; void cc(){}; void main() { char a[100]; printf("%x %x\n", &aa::bb, &aa::dd); sprintf(a, "%x", &aa::bb); //cout<< &aa::bb << &aa::dd << endl; //cout<< &cc <
记得采纳啊