回 帖 发 新 帖 刷新版面

主题:菜鸟我想问一个关于函数默认参数定义的问题!

菜鸟我想问一个关于函数默认参数定义的问题!

我在类中定义了这么一个函数:f(int i,int j,const CString& str,BOOL b=FALSE)
但编译的时候就通不过了,老是提示:重定义默认参数 : 参数 4

这是怎么回事?难道c++定义默认参数不是这样定义的吗?

回复列表 (共2个回复)

沙发

带有默认实参的函数只能在类中声明时给出其默认实参,在类的外部定义函数时不能再次给出其默认实参,否则就是重复定义了。下面就是一个重复定义默认实参的例子:

#include <iostream>
using namespace std;

class demo
{
    int i;
public:
    process(int a=0);
};

demo::process(int a=0) //错误,应当改为demo::process(int a)
{
    i=a;
}

int main()
{
    demo c;
    c.process(1);
    return 0;
}

板凳

谢谢,大哥了

我来回复

您尚未登录,请登录后再回复。点此登录或注册