C++ 普通函数指针:指向与调用
普通函数是一个独立的实体,指向它的指针可以被更改,指向的函数也可以被更改。由于普通函数是独立的实体,所以指向它的指针可以更改指向另外一个函数。
例如,我们可以定义一个指向函数 func1 的指针 ptr,然后将其更改为指向函数 func2。这样,通过 ptr 调用函数时,实际上调用的是 func2。
void func1() {
std::cout << "func1 called" << std::endl;
}
void func2() {
std::cout << "func2 called" << std::endl;
}
int main() {
void (*ptr)() = func1; // 将 ptr 指向 func1
ptr(); // 调用 func1
ptr = func2; // 将 ptr 指向 func2
ptr(); // 调用 func2
return 0;
}
在这个例子中,ptr 指针首先指向 func1,然后被更改为指向 func2。当通过 ptr 调用函数时,实际调用的是 ptr 指向的函数。
函数指针的优势:
- 灵活性和可扩展性: 可以动态地更改函数指针指向的函数,从而实现更加灵活和可扩展的代码。
- 动态调度: 可以根据条件选择调用不同的函数,实现动态调度机制。
- 代码复用: 可以通过函数指针传递函数,实现代码复用。
总结:
普通函数指针是指向函数的指针,它可以指向不同的函数,并且可以被更改。函数指针在 C++ 中非常有用,可以实现灵活的代码设计和动态调度机制。
原文地址: http://www.cveoy.top/t/topic/lhxp 著作权归作者所有。请勿转载和采集!