关于typedef的问题。typedef bool (*Compare) (Sales_item &lhs, Sales_item &rhs)是什么意思?
发布网友
发布时间:2022-04-29 12:51
我来回答
共4个回答
热心网友
时间:2023-10-08 07:46
typedef bool (*Compare) (Sales_item &lhs, Sales_item &rhs) 很显然是函数指针
这里使用 typedef 来简化定义
函数指针bool (*Compare) (Sales_item &lhs, Sales_item &rhs)
注意一定要写*Compare两边的括号,否则就成了bool *Compare (Sales_item &lhs, Sales_item &rhs)这样的返回bool指针的函数啦
下面我们举个实例
typedef bool (*Compare) (Sales_item &lhs, Sales_item &rhs);//简化定义函数指针Compare
bool fun(Sales_item &lhs, Sales_item &rhs)
{
if ((lhs+rhs)>520) //函数体
return true;
else
return false;
}
Compare sm= fun;//获取函数fun的地址给Compare指针
sm(1,2);//等值于fun(1,2);
热心网友
时间:2023-10-08 07:47
定义了一个符号 Compare,用该符号可以定义函数指针,指向一个返回bool且形参为Sales_item &lhs 和 Sales_item &rhs的函数。
可以这样用:
Compare p;
Sales_item &x,&y;
(*p)(x,y);
热心网友
时间:2023-10-08 07:47
compare是用typedef声明的函数指针类型,可用compare定义函数指针如compare compare1;
不加typedef就是声明一个叫compare的函数指针。追问怎么定义这个函数?
热心网友
时间:2023-10-08 07:48
items 没有赋值的过程呢?
stl容器可不是想象的那么简单几句代码就可以使用的
追问???关STL什么事啊