C++类成员指针的使用
2008-11-13 16:49
309 查看
类的数据成员指针及类的成员函数指针
代码如下:
struct MemberPointer {
int m_a;
char* getname(int parama) const;
MemberPointer() {
m_a = 0;
}
}; char* MemberPointer::getname(int parama) const {
return "hello, my name is member pointer";
} int _tmain(int argc, _TCHAR* argv[])
{
MemberPointer mp;
MemberPointer *pmp = new MemberPointer; //指向类成员函数的指针
char* (MemberPointer::*pmf)(int parama) const = &MemberPointer::getname;
char* ca = (mp.*pmf)(3);
char* cb = (pmp->*pmf)(4); std::cout << ca << std::endl;
std::cout << cb << std::endl; //指向类数据成员的指针
int MemberPointer:: *pmd = &MemberPointer::m_a; mp.*pmd = 9;
pmp->*pmd = 12; std::cout << mp.*pmd << std::endl;
std::cout << pmp->*pmd << std::endl; delete pmp;
}
代码如下:
struct MemberPointer {
int m_a;
char* getname(int parama) const;
MemberPointer() {
m_a = 0;
}
}; char* MemberPointer::getname(int parama) const {
return "hello, my name is member pointer";
} int _tmain(int argc, _TCHAR* argv[])
{
MemberPointer mp;
MemberPointer *pmp = new MemberPointer; //指向类成员函数的指针
char* (MemberPointer::*pmf)(int parama) const = &MemberPointer::getname;
char* ca = (mp.*pmf)(3);
char* cb = (pmp->*pmf)(4); std::cout << ca << std::endl;
std::cout << cb << std::endl; //指向类数据成员的指针
int MemberPointer:: *pmd = &MemberPointer::m_a; mp.*pmd = 9;
pmp->*pmd = 12; std::cout << mp.*pmd << std::endl;
std::cout << pmp->*pmd << std::endl; delete pmp;
}
相关文章推荐
- 怎样管理C++类中的指针成员 和 简单的c++智能指针使用的例子
- C++类成员指针逻辑错误使用深层复…
- c++类的成员变量使用普通变量还是指针
- C++指向类成员的指针的使用(详细介绍) 收藏
- 一个完整的使用成员函数指针的例子
- 【转】C++指向类成员的指针的使用(详细介绍)
- C++类成员指针
- 使用c++的成员指针实现类似Borland VCL组件的事件回调
- C++类成员函数中的函数指针参数
- 使用std::function 把类成员函数指针转换为普通函数指针
- “error C3867: “XXX”: 函数调用缺少参数列表;请使用“&XXX”创建指向成员的指针”的错误
- 如何使用类的成员方法指针?
- 为什么C++类定义中,数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用?
- C#中使用托管C++类,委托调用,以供托管C++类的成员函数回调的实现方式
- 使用std::function 把类成员函数指针转换为普通函数指针
- C++类中static成员的使用方法
- C++类成员函数指针,二级类成员函数指针知识点
- 第十七章 特殊成员_使用typedef简化函数指针的声明
- 静态成员函数、this指针、对象指针和动态对象使用小结
- C++类的成员函数使用的一些小总结