いろいろなテクニック.Nucleo と DISCO-F746 用.
Dependencies: Array_Matrix mbed
FunctionPointerInClass.hpp
- Committer:
- MikamiUitOpen
- Date:
- 2019-04-10
- Revision:
- 1:bbb9f0c3e523
- Parent:
- 0:bb939e0bc6e2
File content as of revision 1:bbb9f0c3e523:
//------------------------------------------------ // クラス内で関数ポインタを使う // 2016/07/22, Copyright (c) 2016 MIKAMI, Naoki //------------------------------------------------ class MyClass { public: MyClass(int k) // 実行する処理を,コンストラクタの引数 k で変える { if (k==0) fp = &MyClass::GetA; // 関数ポインタに GetA() を割り当てる else fp = &MyClass::GetB; // 関数ポインタに GetB() を割り当てる } void Exec(int &x) { (this->*fp)(x); } private: void (MyClass::*fp)(int&); // 関数ポインタ // 以下の関数を関数ポインタに割り当てる void GetA(int& a) { a = 2; } void GetB(int& a) { a = 5; } }; void MyFunctionPointerClass() { MyClass objA(0); MyClass objB(1); int x; objA.Exec(x); // GetA() が実行される printf("a = %d\r\n", x); objB.Exec(x); // GetB() が実行される printf("a = %d\r\n", x); }