返回信息流#include <iostream>
int addition (int a, int b) {
return (a+b);
}
int subtraction (int a, int b) {
return (a-b);
}
int (*minus)(int,int) = subtraction; ///////////
int operation (int x, int y, int (*functocall)(int,int)) {
int g;
g = (*functocall)(x,y);
return (g);
}
int main () {
int m,n;
m = operation (7, 5, addition);
n = operation (20, m, minus);
cout <<n;
return 0;
}
他解释说minus 是全局指针,指向一个有两个整型参数的函数,它被赋值指向函数subtraction
可是在vs2013上出现 error :n = operation (20, m, minus) 中minus 不明确。。
将int (*minus)(int,int) = subtraction; 放进main函数之后就没问题了。。菜鸟求指教
这是一条镜像帖。来源:北邮人论坛 / cpp / #87439同步于 2015/6/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
C++函数指针问题求助
wujian4
2015/6/8镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
main.cpp: In function `int main()':
main.cpp:19: error: use of `minus' is ambiguous
main.cpp:10: error: first declared as `int (*minus)(int, int)' here
/usr/include/c++/3.4/bits/stl_function.h:143: error: also declared as `template<class _Tp> struct std::minus' here
g++ error: 应该是minus有两个定义,stl中还有一个定义,换个名字就OK了
嗯,确实好用.....那为什么我改在main里面也好用呢?...命名空间有关?
【 在 dlmn27958828 的大作中提到: 】
: main.cpp: In function `int main()':
: main.cpp:19: error: use of `minus' is ambiguous
: main.cpp:10: error: first declared as `int (*minus)(int, int)' here
: ...................
#include "stdafx.h"
#include <iostream>
//using namespace std; ///////////①
int addition(int a, int b) {
return (a + b);
}
int subtraction(int a, int b) {
return (a - b);
}
int(*minus)(int, int) = subtraction; ///////////
int operation(int x, int y, int(*functocall)(int, int)) {
int g;
g = (*functocall)(x, y);
return (g);
}
int main() {
int m, n;
m = operation(7, 5, addition);
n = operation(20, m, minus);
std::cout << n; ////////②
return 0;
}
这算是一种说明跟 命名空间 有关的方式么?
恩,局部变量隐藏全局变量了。。
不知道为啥之前的回复没有提交成功
【 在 wujian4 的大作中提到: 】
: 嗯,确实好用.....那为什么我改在main里面也好用呢?...命名空间有关?
哈哈...谢谢...谢谢牛人..
【 在 dlmn27958828 的大作中提到: 】
: 恩,局部变量隐藏全局变量了。。
: 不知道为啥之前的回复没有提交成功