您好我正在尝试创建一个复制构造函数并且即时收到警告。 "没有为Money找到合适的构造函数(没有参数) 构造函数Money.Money(double)不适用 (实际和正式的参数列表长度不同) 构造函数Money.Money(Money)不适用 (实际和正式的参数列表长度不同)" 我正在为类和我想创建这个构造函数的位置继续给我一个警告。
如果我错了,请帮忙纠正。
这是我的导师给我的任务。
重载构造函数。您将编写的构造函数将是一个复制构造函数。它应该使用参数Money对象来创建一个重复的Money对象,方法是将每个实例变量的值从参数对象复制到新对象的实例变量
这就是我写的。
public Money(Money object)
{
Money newMoney = new Money();
}
答案 0 :(得分:2)
添加参数化构造函数时,将删除默认构造函数。尝试添加
public Money()
{
}
代码。我不知道你的构造函数是如何复制任何东西的
答案 1 :(得分:2)
如果定义一个或多个构造函数,则不会自动生成默认构造函数(无参数构造函数)。
您定义了一个带有一个参数Money(Money object)
的构造函数,因此如果没有显式定义无参数构造函数,则无法执行new Money()
。
顺便说一句,在Money(Money object)
中创建Money对象是没用的。
复制构造函数如下:
public Money(Money object) {
this.param1 = object.param1;
this.param2 = object.param2;
}
答案 2 :(得分:0)
当你创建一个类时,编译器将添加一个没有参数的默认构造,例如public Money()2是你的默认构造函数。
但是在你明确定义构造函数之后,编译器将不再这样做了。
所以它提示没有适用的(实际和正式的参数列表长度不同)。
要解决这个问题,你应该添加没有参数的构造函数。