如何创建复制构造函数(错误:实际和形式参数列表的长度不同)

番茄罐头

我在当前的任务中遇到了问题(用 Java 完成)。我得到了一个关于抽象类和子类的项目。但是,我坚持为它创建复制构造函数,因为我不断收到错误消息:实际和形式参数列表的长度不同。这里, arr 是抽象的“超级”类,其中仅定义了构造函数(如下所示)。构造函数的参数对应于二维数组的行 (m) 和列 (n)。在 Board 类(扩展 arr)中,我必须定义构造函数和复制构造函数。我已经使用 super(m,n) 定义了构造函数,但我无法定义复制构造函数(而且我不确定这里的子类构造函数是否正确)。

在 arr 类中:

protected int a, b;
protected Arr (int height, int width) { 
   a = height; 
   b = width; 
}

在板子类中:

public class Board extends Arr{
private int[][] space;
public Board (int a, int b){
   super(a,b);
   this.space = new int[a][b];
}

复制构造函数

public Board(Board X) {
   board copy = new Board(a,b);
   copy.space = X.space;
}

我在“public board(board X) {”行上收到一个错误,因为我似乎有错误的论点。但是,我不允许在这里更改参数。从我之前对此的研究中,我只知道复制构造函数复制了参数对象,但我不能这样做,因为我不知道如何制作一个。谢谢你的帮助

迈克尔

首先,您在类定义中缺少关键字“类”:

public class board extends arr

您的复制构造函数不正确:

board copy = new board(a,b);
copy.data = X.data;

您所做的只是创建一个不同的 board实例,该实例会立即被丢弃。您没有设置实例的任何值

您需要调用超级构造函数:

super(X.m, X.n);

类名应该是PascalCase

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java构造函数:实际参数和形式参数列表的长度不同

实际和形式参数列表的长度不同

构造函数不能应用于给定类型?实际和形式参数列表的长度不同

构造函数不能应用于给定类型;要求:包裹;实际和形式参数列表的长度不同

Java错误-实际参数和形式参数列表的长度不同

实际参数和形式参数长度不同 - 构造函数错误

实际和形式参数的长度不同-Java构造函数错误

“实际或形式参数列表的长度不同”

Jlabel无法应用;原因:实际参数和形式参数列表的长度不同

实际参数和形式参数列表的长度误差不同

实际参数和形式参数列表的长度不同>“%d”,变量

ERROR 实际和形式参数列表的长度不同,使用 showChar

required int found no argument reason 实际和形式参数列表的长度不同

编译器抱怨“实际和形式参数列表的长度不同”,但它们没有

实际参数和正式参数列表的长度不同,但实际上是相同的

龙目岛造成“实际并正式参数列表长度错误不同”

如何在不知道形式参数类型的情况下找到构造函数?

获取模板的形式参数传递的类型的构造函数

如何修复C ++中的“构造函数实例不匹配参数列表”错误?

函数错误:参数3与多个形式参数匹配

Typescript 中动态创建函数的形式参数

构造函数Bicycle类不能应用于给定类型;必需:int,int找到:无参数原因:实际参数和前一个参数的长度不同

变量参数列表:使用va_list还是形式参数的地址?

在形式参数列表中自动使用const并通过引用传递的明显后果是什么?

Systemverilog DPI 中的实际参数和形式参数有什么区别?

Python中具有不同参数列表的超类的构造函数

如何将.Rnw文件编织到带有tikzpicture环境的绘图的乳胶中?(错误:形式参数与多个实际参数匹配)

错误:没有构造函数“ Faktura :: Faktura”的实例与参数列表匹配

初始化形式参数不能在工厂构造函数中使用