C++ 类函数地址打印
#include <iostream>
using std::cout;
using std::endl;
class TestClass {
void MyFunc(void);
public:
void PrintMyFuncAddress(void);
};
void TestClass::MyFunc(void) {
return;
}
void TestClass::PrintMyFuncAddress(void) {
void (TestClass::*ptrtofn)() = &TestClass::MyFunc;
cout << ptrtofn << endl;
cout << &ptrtofn << endl;
cout << (void *&)ptrtofn << endl;
printf("%p\n", &TestClass::MyFunc);
}
int main(void) {
TestClass a;
a.PrintMyFuncAddress();
return 0;
}打印结果:
1
0x7fff93642c60
0x4009ba // (void *&)ptrtofn
0x4009ba
有几个疑问
1. 为什么 cout << ptrtofn << endl; 是1 , 在C语言中 ptrtofn 不是代表函数指针指向函数地址但在c++ 为什么是打印出1
2. 0x7fff93642c60 // 这地址是代表什么?
3. 0x4009ba // (void *&)ptrtofn , 为什么要 (void *&)这样转类型?
...全文
相关推荐
LinkList.cpp.tar.gz_数据结构_C++_Builder_
LinkList.h:这是链表类的头文件,包含类的声明以及必要的函数原型。在C++中,头文件用于包含其他源文件需要使用的类型定义和函数声明,以便于在多个文件之间进行编译时的依赖管理。
cpp:Comenzando con cpp
在"cpp-main"这个文件中,可能会包含一个简单的C++程序,例如打印"Hello, World!"的程序,这是学习任何编程语言时的典型起点。
使用C_C++实现Socket聊天程序
4. connect函数的使用在TCPClient.cpp文件中,使用connect函数来连接服务器程序。如果连接失败,程序将打印错误信息“Failed connect()”。
cpp代码-初学c++练手
- 函数:C++中的函数是一组执行特定任务的代码块,可以接受参数并返回值。2. **类与对象**: - 类是C++中的核心概念,它定义了数据成员(变量)和成员函数(方法)。类是面向对象编程的基础。
Cpp-Programs
**指针**:C++中的指针是其强大之处,它们可以存储其他变量的地址,允许直接操作内存。理解指针是掌握C++的关键。4.


