如何使用指向类的成员函数的指针(详解!)
2017-11-06 09:48
239 查看
原文:如何使用指向类的成员函数的指针(详解!)
另外一篇英文参考:Member Function Pointers and the Fastest Possible C++ Delegates
我们首先复习一下"指向函数的指针"如何使用?
[cpp] view plain copy
print?
void print()
{
}
void (*pfun)(); //声明一个指向函数的指针,函数的参数是 void,函数的返回值是 void
pfun = print; //赋值一个指向函数的指针
(*pfun)(); //使用一个指向函数的指针
[b]
View Code
另外一篇英文参考:Member Function Pointers and the Fastest Possible C++ Delegates
我们首先复习一下"指向函数的指针"如何使用?
[cpp] view plain copy
print?
void print()
{
}
void (*pfun)(); //声明一个指向函数的指针,函数的参数是 void,函数的返回值是 void
pfun = print; //赋值一个指向函数的指针
(*pfun)(); //使用一个指向函数的指针
[b]
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 #define debug(x) cout << #x << " at line " << __LINE__ << " is: " << x << endl 5 6 class LuggageCompartment { 7 private: 8 int m_iLuggage; //私有变量,保存现在的行李总数 9 public:LuggageCompartment() { 10 m_iLuggage = 0; 11 } //构造函数 12 int TakeoutLuggage() //取出一件行李 13 { 14 if (m_iLuggage != 0) 15 m_iLuggage--; 16 return m_iLuggage; 17 } 18 int InsertLuggage() //放入一件行李 19 { 20 return (++m_iLuggage); 21 } 22 int checkLuggage() //检查行李总数 23 { 24 return m_iLuggage; 25 } 26 }; 27 28 class FlightSegment { 29 private:LuggageCompartment * m_pLC; //成员指针 30 public:void SetLuggageCompartment(LuggageCompartment * pLC) { 31 m_pLC = pLC; 32 } //设置成员指针 33 FlightSegment() //构造函数将成员指针初始化为null 34 { 35 m_pLC = NULL; 36 } 37 int checkLuggage() { 38 if (m_pLC == NULL) 39 return -1; 40 return m_pLC->checkLuggage(); //将函数调用委托给成员指针 41 } 42 }; 43 44 45 46 int main(int argc, char *argv[]) 47 { 48 FlightSegment segment; 49 LuggageCompartment lc1, lc2; 50 for (int i = 0; i < 10; i++) 51 lc1.InsertLuggage(); 52 segment.SetLuggageCompartment(&lc1); 53 cout << "Now we have " << segment.checkLuggage() 54 <<" Luggages." << endl; 55 segment.SetLuggageCompartment(&lc2); 56 cout << "Now we have " << segment.checkLuggage() 57 <<" Luggages." << endl; 58 return 0; 59 }
View Code
相关文章推荐
- 如何使用指向类的成员函数的指针(详解!)
- 如何使用指向类的成员函数的指针(详解!)
- 如何使用指向类的成员函数的指针(详解!)
- 如何使用指向类的成员函数的指针(详解!)
- 如何使用指向类的成员函数的指针(详解!)
- 如何使用指向类的成员函数的指针(详解!)
- C++中,如何定义和使用指向成员函数的指针
- c++使用指针指向的字符串,如何判断字符串结束
- 如何使用指向函数的指针
- 二维数组做函数参数,如何将三维数组降为二维数组,指向数组的指针的使用
- (转 )Delphi指针如何指向使用with开域语句创建的无名组件对象
- 如何区分“指向const对象的指针”和“const指针”?
- 如何在Oracle中使用Java存储过程 (详解)
- 如何得到类成员函数的指针(操作符.×和->*的使用)
- 在winform的控件上面如何使用彩色的鼠标指针
- tr1中的智能指针详解及使用示例(Rev)
- SAP 中如何使用指针或替代变量?
- typedef使用大全(指向函数的指针)
- 指向函数的指针的使用
- 使用指向指针的指针改变一个传递进来的指针的指向!