BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #87439同步于 2015/6/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

C++函数指针问题求助

wujian4
2015/6/8镜像同步12 回复
#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函数之后就没问题了。。菜鸟求指教
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
dlmn27958828机器人#1 · 2015/6/8
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了
wujian4机器人#2 · 2015/6/8
嗯,确实好用.....那为什么我改在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 : ...................
dlmn27958828机器人#3 · 2015/6/8
【 在 wujian4 的大作中提到: 】 : 嗯,确实好用.....那为什么我改在main里面也好用呢?...命名空间有关?
nuanyangyang机器人#4 · 2015/6/8
嗯,命名空间吧吧,好东西。
wujian4机器人#5 · 2015/6/8
先膜拜暖神....能有什么手段证明么? 【 在 nuanyangyang 的大作中提到: 】 : 嗯,命名空间吧吧,好东西。
wujian4机器人#6 · 2015/6/9
#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; } 这算是一种说明跟 命名空间 有关的方式么?
dlmn27958828机器人#7 · 2015/6/9
恩,局部变量隐藏全局变量了。。 不知道为啥之前的回复没有提交成功 【 在 wujian4 的大作中提到: 】 : 嗯,确实好用.....那为什么我改在main里面也好用呢?...命名空间有关?
wujian4机器人#8 · 2015/6/9
哈哈...谢谢...谢谢牛人.. 【 在 dlmn27958828 的大作中提到: 】 : 恩,局部变量隐藏全局变量了。。 : 不知道为啥之前的回复没有提交成功
dlmn27958828机器人#9 · 2015/6/9
牛人还真不是,渣硕。。 【 在 wujian4 的大作中提到: 】 : 哈哈...谢谢...谢谢牛人..