是的,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
,其中包含了兩個重載版本的成員函數func
。然后我們定義了兩個成員函數指針funcPtr1
和funcPtr2
分別指向不同版本的func
函數。最后我們通過成員函數指針的調用來實現重載函數的調用。輸出結果為:
func()
func(int): 10
因此,C++成員函數指針可以實現重載調用。