在C++中,signature
通常指的是函數(shù)的簽名,它包括函數(shù)的名稱、參數(shù)類型和數(shù)量以及返回類型。傳遞函數(shù)簽名的方式取決于你是在哪個上下文中使用它。以下是幾種常見的情況:
std::function
(C++11及以后版本)來傳遞函數(shù)簽名。void foo(int x) {
// ...
}
void bar(std::function<void(int)> func) {
func(42); // 調(diào)用foo
}
int main() {
bar(foo); // 正確傳遞函數(shù)簽名
return 0;
}
template<typename Func>
void call_function(Func func) {
func();
}
void my_function() {
// ...
}
int main() {
call_function(my_function); // 正確傳遞函數(shù)簽名
return 0;
}
void foo(int x) {
// ...
}
void foo(double x) {
// ...
}
int main() {
foo(42); // 調(diào)用第一個foo
foo(42.0); // 調(diào)用第二個foo
return 0;
}
class MyInterface {
public:
virtual void myFunction(int x) = 0; // 純虛函數(shù)作為簽名
};
class MyClass : public MyInterface {
public:
void myFunction(int x) override {
// ...
}
};
int main() {
MyClass obj;
obj.myFunction(42); // 調(diào)用MyClass中的實現(xiàn)
return 0;
}
這些示例展示了如何在C++中傳遞函數(shù)簽名。具體的方法取決于你的需求和上下文。