实例化新对象时,不接受C ++继承方法的默认参数值

时间:2018-06-29 12:17:13

标签: c++ class

我有一个Regular班。它具有setValue方法:

void Regular::setValue(string id, string name, double s, int n = 0)
{
    uid = id;
    uname = name;
    sid = s;
    netcount = n;

}

当我运行以下代码时

Regular x;
x.setValue("X01", "John Doe", 1.1);

这给我一个错误

'Regular::setValue': function does not take 3 arguments 

默认情况下是否应该设置netcount = 0的值,因为我没有传入第四个参数?

1 个答案:

答案 0 :(得分:0)

此代码段应该可以解决您的问题。仅在声明中,您需要指定为默认参数。

#include <iostream>
#include <string>

using namespace std;

class Regular {
    string uid;
    string uname;
    double sid;
    int netcount;

public:
    void setValue(string id, string name, double s, int n = 0);
};


void Regular::setValue(string id, string name, double s, int n)
{
    uid = id;
    uname = name;
    sid = s;
    netcount = n;

}

int main()
{
    Regular x;
    x.setValue("X01", "John Doe", 1.1);
    return 0;
}