C++ 实例化新对象时不接受继承方法默认参数值
C++ Inheritance methods default argument value not accepted when instantiating a new object
我有一个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
的值,因为我没有传入第四个参数吗?
此代码段应该可以解决您的问题。仅在声明中,您需要指定为默认参数。
#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;
}
相关文章:
- 为什么线程不接受此输入?
- 函数不接受 X 参数,函数使用默认参数
- C++ boost::asio::ip::tcp::acceptor 有时不接受连接器?
- B不接受8作为输入的是什么?C++
- C++数组输入不接受一定数量的整数
- C++概念assignable_from不接受 const&-return 运算符=
- 斯堪夫不接受输入
- C++字符数组不接受超过 4 个字符的输入
- CIN不接受C++中带有空格的输入?
- 为什么C++ STL 哈希表 (unordered_map) 不接受向量作为键
- 为什么不接受具有默认分配参数的函数作为 0-arg 生成器?
- 模板接受常量,但不接受文字
- 如何在构造函数中传递 const 引用时强制编译器不接受右值
- 为什么 strtok_r() 只接受字符数组而不接受字符指针
- C++ cout 不接受字符串或带 + 的字符串
- std::cin不接受输入
- 带有openSSL的libwebsocket服务器不接受连接
- 函数不接受 C++ 参数
- 将任意数据传递给不接受"void* userarg"的C++回调
- C++ 实例化新对象时不接受继承方法默认参数值