Chinaunix
标题:
怎么调用这个方法
[打印本页]
作者:
spibit
时间:
2007-07-20 09:39
标题:
怎么调用这个方法
class A
{
public:
int a(int x = 0)
{
return 0;
};
int a()
{
return 0;
};
};
复制代码
这里,函数重载,
假设我有
A a;
a.a(); // 编译器报错,
1,怎么调用int a(int x = 0) ?怎么调用int a() ?
2,还是不可能调用的?
这个类这么写是没问题的,因为这样是能够正常调用的:
A a;
a.a(3);
[
本帖最后由 spibit 于 2007-7-20 14:30 编辑
]
作者:
scutan
时间:
2007-07-20 09:46
int a(int x = 0)
改成
int a(int x)
作者:
spibit
时间:
2007-07-20 09:56
问的就是有默认值,怎么调,
作者:
zwylinux
时间:
2007-07-20 13:43
这个2义性应该是不能避免的吧,只能修改函数参数了。
作者:
sinboyang
时间:
2007-07-20 13:48
看看函数重载是怎么一回事先吧?
作者:
emacsnw
时间:
2007-07-20 14:01
你这个“重载”编译不过的。
作者:
spibit
时间:
2007-07-20 14:31
这个类这么写是没问题的,因为这样是能够正常调用的:
A a;
a.a(3);
作者:
spibit
时间:
2007-07-20 15:37
也就是说不能调用了?
作者:
chenjn
时间:
2007-07-20 17:24
有了"int a(int x = 0",为什么你还要用"int a()"呢?你到底想干什么呀?
你要不然就单独用"int a(int x=0)"
否则就用"int a(int x)"和"int a()"
第一种用法,应该可以说包括了后面两种定义了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2