C++:数独(复制板)
C++: sudoku (copy board)
我刚接触c++,在做家庭作业(数独(时遇到了一个问题。
指示说:"你必须创建一个新的董事会,作为当前董事会的副本(使用复制构造函数并用new从堆中分配板(。">
我试过了(写在黑板上。抄送(:
#include "board.h"
// Search for a solution, returns NULL if no solution found
Board* Board::search(void) {
Board b = new Board(&this);
...
return b;
}
收到错误消息:
lvalue required as unary '&' operand.
我也试过:
Board* Board::search(void) {
Board b;
Board *b3;
b3 = &b;
...
return b3;
}
当comp。但它在跑步时也不起作用。
怎么做?这里真的需要帮助,thx!
这是一些板的代码。h:
class Board {
private:
Field fs[9][9]; // All fields on board
public:
// Initialize board
Board(void) {
// Uses the default constructor of Field!
}
// Copy board
Board(const Board& b) {
for(int i = 0; i < 9; i++){
for(int j = 0; j < 9; j++){
fs[i][j] = b.fs[i][j];
}
}
}
// Assignment operator for board
Board& operator=(const Board& b) {
if(this != &b){
for(int i = 0; i < 9; i++){
for(int j = 0; j < 9; j++){
fs[i][j] = b.fs[i][j];
}
}
}
return *this;
}
....
完整的说明可以在这里找到:http://www.kth.se/polopoly_fs/1.136980/菜单/概述/列内容/附件/2-2.pdf
代码:http://www.kth.se/polopoly_fs/1.136981/菜单/常规/列内容/附件/2-2.zip
更改:
Board b = new Board(&this);
至:
Board *b = new Board(*this);
Board b = new Board(&this);
这一行有两个错误,第一个错误是,如果使用new
进行分配,则类型将是Board *
,而不仅仅是Board
。第二个错误是,如果你想使用复制构造函数,你应该传递this
指向的元素,而不是this
:的地址
Board * b = new Board( *this );
相关文章:
- C++ 使用递归回溯的数独求解器不起作用
- 确定数独板是否有效
- 用于检查我们是否有有效数独的辅助功能
- 如何将 2d 数组转换为 svg 或 png 格式的数独图像?
- 递归数独求解器 不正确的解决方案 (C++)
- 在数组中使用C++中的哈希表复制数组中的元素
- 如何解决数独问题,以便通过交换任何两个相邻的子网格,我仍然得到有效的答案?
- 为什么我的数独程序不返回输出?
- 数独百变需要帮助
- 快速复制数组到阵列
- 数独检查器-如何在子网格中检查重复项
- 获取数独块的坐标
- 如何在C 中复制数组
- 赋值运算符复制数组中除可用空间之外的所有内容
- 尝试复制数组时从 DLL 调用函数时程序崩溃
- C++数独求解器
- C链接程序并在主函数上使用其他程序的方法(数独)
- 数独解决方案仅适用于行和列
- 如何使用.txt文件从我的数独游戏C的另一个文件中获得输入
- C++:数独(复制板)