
原始函数指针(raw function pointer):C中传统的函数指针;
函数指针是将一个函数赋值给一个变量的方法。
示例一:
#include
void HelloWorld()
{
std::cout << "Hello World" << std::endl;
}
int main()
{
auto function = HelloWorld; //隐式转换:函数名是一个函数的地址,即与:auto function = &HelloWorld; 等价
function(); //打印出Hello World
return 0;
}
示例二:
#include
void HelloWorld()
{
std::cout << "Hello World" << std::endl;
}
int main()
{
void(*foo)() = HelloWorld;
foo();
return 0;
}
示例三:使用函数别名
#include
void HelloWorld(int a)
{
std::cout << "Hello World" << a << std::endl;
}
int main()
{
typedef void(*HelloWorldFunction)(int);
HelloWorldFunction function = HelloWorld;
function(5);
return 0;
}
示例四:函数指针的应用
#include
#include
void Print(int value)
{
std::cout << value << std::endl;
}
void ForEach(const std::vector<int>& values, void(*func)(int))
{
for(int value : values)
Print(value);
}
int main()
{
std::vector<int> values = {1, 4, 5, 6};
ForEach(values, Print);
return 0;
}
示例五:使用lambda函数
#include
#include
void ForEach(const std::vector<int>& values, void(*func)(int))
{
for(int value : values)
Print(value);
}
int main()
{
std::vector<int> values = {1, 4, 5, 6};
ForEach(values, [](int values) { std::cout << value << std::endl;});
return 0;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)