编程论坛
注册
登录
编程论坛
→
C++教室
同名的成员函数,不同的返回类型,不可行。有办法解决么?
Lyone
发布于 2010-12-10 14:58, 2151 次点击
例如:
class a
{
int getfile(CString c);
CString getfile(CString c);
}
编译的时候就提示有冲突,那有办法解决么?除了改函数名
8 回复
#2
Lyone
2010-12-10 15:06
看到有说用函数的多态性。。。对我来说又是一个新的领域。。。。继续查资料去。
#3
laoyang103
2010-12-10 15:13
函数是要被调用的 函数重载是靠参数来区分的
当你调用的时候你知道调用哪个函数吗?(如果不看返回值)
估计你是要改函数名 所以只靠返回值是不可以构成重载
构成函数重载的规则是 函数的参数个数或者参数类型不一样才可以构成重载
感觉楼主概念不是很清晰
还有看下面的代码
void output(int a,int b=5)
void output(int a)
你认为能够成重载嘛?
#4
尝鲜
2010-12-10 22:07
这是一个函数重载问题
如果真有必要写只有返回类型不同的形式的话,在函数前或后加个 const试试
#5
pangding
2010-12-10 22:08
嗯,3楼就是正解。
主要是看楼主的需要了,为什么会设计这样两个不同返回值的函数?
#6
ml232528
2010-12-12 00:14
同样的参数 为什么会返回不同的类型?
根据实际情况 重新设计一下吧
#7
迷失的木桶
2010-12-14 19:18
使用不同的命名空间可以解决名字冲突。
namespace......
在类中基本无解。。。
[
本帖最后由 迷失的木桶 于 2010-12-14 19:20 编辑
]
#8
水云逸
2010-12-18 22:26
重载函数靠参数区分
1