注册 登录
编程论坛 C++教室

同名的成员函数,不同的返回类型,不可行。有办法解决么?

Lyone 发布于 2010-12-10 14:58, 2151 次点击
例如:
class a
{
int getfile(CString c);
CString getfile(CString c);
}

编译的时候就提示有冲突,那有办法解决么?除了改函数名
8 回复
#2
Lyone2010-12-10 15:06
看到有说用函数的多态性。。。对我来说又是一个新的领域。。。。继续查资料去。
#3
laoyang1032010-12-10 15:13
函数是要被调用的  函数重载是靠参数来区分的
当你调用的时候你知道调用哪个函数吗?(如果不看返回值)
估计你是要改函数名   所以只靠返回值是不可以构成重载
构成函数重载的规则是  函数的参数个数或者参数类型不一样才可以构成重载
感觉楼主概念不是很清晰
还有看下面的代码
void output(int a,int b=5)
void output(int a)
你认为能够成重载嘛?
#4
尝鲜2010-12-10 22:07
这是一个函数重载问题
如果真有必要写只有返回类型不同的形式的话,在函数前或后加个 const试试
#5
pangding2010-12-10 22:08
嗯,3楼就是正解。

主要是看楼主的需要了,为什么会设计这样两个不同返回值的函数?
#6
ml2325282010-12-12 00:14
同样的参数 为什么会返回不同的类型?
根据实际情况 重新设计一下吧
#7
迷失的木桶2010-12-14 19:18
使用不同的命名空间可以解决名字冲突。
namespace......
在类中基本无解。。。

[ 本帖最后由 迷失的木桶 于 2010-12-14 19:20 编辑 ]
#8
水云逸2010-12-18 22:26
重载函数靠参数区分
1