C++鎴愬憳鍑芥暟鎸囬拡鑳藉惁瀹炵幇閲嶈浇璋冪敤
鏄殑锛孋++鎴愬憳鍑芥暟鎸囬拡鍙互瀹炵幇閲嶈浇璋冪敤銆傛垚鍛樺嚱鏁版寚閽堝彲浠ユ寚鍚戠壒瀹氱被涓殑涓嶅悓閲嶈浇鐗堟湰鐨勬垚鍛樺嚱鏁帮紝骞朵笖鍙互閫氳繃鎸囬拡鐨勮皟鐢ㄦ潵瀹炵幇閲嶈浇鍑芥暟鐨勮皟鐢ㄣ€備緥濡傦細
#include <iostream>
class MyClass {
public:
void func() {
std::cout << "func()" << std::endl;
}
void func(int x) {
std::cout << "func(int): " << x << std::endl;
}
};
int main() {
MyClass obj;
void (MyClass::*funcPtr1)() = &MyClass::func;
void (MyClass::*funcPtr2)(int) = &MyClass::func;
(obj.*funcPtr1)();
(obj.*funcPtr2)(10);
return 0;
}
鍦ㄤ笂闈㈢殑渚嬪瓙涓紝鎴戜滑瀹氫箟浜嗕竴涓被MyClass
锛屽叾涓寘鍚簡涓や釜閲嶈浇鐗堟湰鐨勬垚鍛樺嚱鏁?code>func銆傜劧鍚庢垜浠畾涔変簡涓や釜鎴愬憳鍑芥暟鎸囬拡funcPtr1
鍜?code>funcPtr2鍒嗗埆鎸囧悜涓嶅悓鐗堟湰鐨?code>func鍑芥暟銆傛渶鍚庢垜浠€氳繃鎴愬憳鍑芥暟鎸囬拡鐨勮皟鐢ㄦ潵瀹炵幇閲嶈浇鍑芥暟鐨勮皟鐢ㄣ€傝緭鍑虹粨鏋滀负锛?/p>
func()
func(int): 10
鍥犳锛孋++鎴愬憳鍑芥暟鎸囬拡鍙互瀹炵幇閲嶈浇璋冪敤銆?/p>
相关问答