① 函数指针的例子
#include <iostream>
void print(int i)
{
std::cout
<< i <<
std::endl;
}
void multiply(int& nDest, int nBy)
{
nDest *=
nBy;
}
void print_something()
{
std::cout
<< "something"
<< std::endl;
}
int sayHello()
{
std::cout
<< "Hello, World!"
<< std::endl;
return
10;
}
int main()
{
void
(*pFunction_1)(int);
pFunction_1
= &print;
pFunction_1(1);
//
输出结果为1
void
(*pFunction_2)(int&, int) =
&multiply;
int i =
1;
pFunction_2(i, 10);
std::cout
<< "i = "
<< i <<
std::endl;
//
输出结果为10
void
(*pFunction_3)();
pFunction_3
= &print_something;
pFunction_3();
//
输出结果为something
int
(*pFunction_4)();
pFunction_4
= &sayHello;
int a =
pFunction_4();
//
输出结果为Hello, World!
std::cout
<< a <<
std::endl;
//
输出结果为10
return
0;
}
② 函数引用的例子
#include <iostream>
void print(int i)
{
std::cout
<< i <<
std::endl;
}
void print2(int i)
{
std::cout
<< i <<
std::endl;
}
void multiply(int& nDest, int nBy)
{
nDest *=
nBy;
}
void print_something()
{
std::cout
<< "something"
<< std::endl;
}
int sayHello()
{
std::cout
<< "Hello, World!"
<< std::endl;
return
10;
}
int main()
{
// void
(&rFunction_1)(int);
//
错误:未初始化引用!引用必须初始化
void
(&rFunction_2)(int) = print;
rFunction_2(1);
//
输出1
rFunction_2
= print2;
rFunction_2(2);
//
输出2
void
(&rFunction_3)(int&, int) =
multiply;
int i =
1;
rFunction_3(i, 10);
std::cout
<< i <<
std::endl;
//
输出10
void
(&rFunction_4)() = print_something;
rFunction_4();
//
输出something
int
(&rFunction_5)();
rFunction_5
= sayHello;
int a =
rFunction_5(); // 输出Hello,
World!
std::cout
<< a <<
std::endl;
//
输出10
return
0;
}
#include <iostream>
void print(int i)
{
}
void multiply(int& nDest, int nBy)
{
}
void print_something()
{
}
int sayHello()
{
}
int main()
{
}
② 函数引用的例子
#include <iostream>
void print(int i)
{
}
void print2(int i)
{
}
void multiply(int& nDest, int nBy)
{
}
void print_something()
{
}
int sayHello()
{
}
int main()
{
}
总结:
函数指针的声明使用方式:
<想要指向的函数之返回类型>(*函数指针的名称)<想要指向的函数之参数类型…>
如要想声明一个函数指针指向以下函数:
void print(int i)
{
std::cout
<< i <<
std::endl;
}
那么就可以如下操作:
void (*pFunction)(int);
然后如下用函数的地址给pFunction赋值:
pFunction = &print;
在然后,pFunction就可以和函数print一样使用了,比如,
pFunction(1);
等等。
函数指针的声明使用方式:
<想要指向的函数之返回类型>(*函数指针的名称)<想要指向的函数之参数类型…>
如要想声明一个函数指针指向以下函数:
void print(int i)
{
}
那么就可以如下操作:
void (*pFunction)(int);
然后如下用函数的地址给pFunction赋值:
pFunction = &print;
在然后,pFunction就可以和函数print一样使用了,比如,
pFunction(1);
等等。