gpt4 book ai didi

C++:数独(抄板)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:07 26 4
gpt4 key购买 nike

我是 c++ 的新手,在做作业(数独)时遇到了问题。

说明说:“你必须创建一个新板作为当前板的拷贝(使用复制构造函数并使用 new) 从堆中分配板。”

我试过了(写在board.cc中):

#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 时没有问题。但它在运行时也不起作用。

怎么做?真的需要帮助,谢谢!

这是 board.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!/Menu/general/column-content/attachment/2-2.pdf

代码:http://www.kth.se/polopoly_fs/1.136981!/Menu/general/column-content/attachment/2-2.zip

最佳答案

改变:

Board b = new Board(&this);

到:

Board *b = new Board(*this);

关于C++:数独(抄板),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8385085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com