在C++中,可以使用函数指针或函数对象来实现让一个函数只在通过参数传递的函数中可用的功能。
示例代码:
#include <iostream>
void foo() {
std::cout << "This function can only be called through the function pointer." << std::endl;
}
void bar(void (*func)()) {
func(); // 通过函数指针调用函数
}
int main() {
bar(foo); // 将函数指针作为参数传递给bar函数
return 0;
}
示例代码:
#include <iostream>
class Foo {
public:
void operator()() {
std::cout << "This function can only be called through the function object." << std::endl;
}
};
void bar(Foo func) {
func(); // 通过函数对象调用函数调用运算符
}
int main() {
Foo foo;
bar(foo); // 将函数对象作为参数传递给bar函数
return 0;
}
以上两种方法都可以实现让一个函数只在通过参数传递的函数中可用的效果。在实际应用中,可以根据具体需求选择使用函数指针或函数对象。
领取专属 10元无门槛券
手把手带您无忧上云