當我試圖填充一個二維數組充滿了我創建的類的對象時,我有一個問題。錯誤是:C++編譯器錯誤C2679:二進制'=':沒有找到運算符
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'Cell *' (or there is no acceptable conversion)
生成錯誤是如下所述的代碼:
從main.cpp中摘錄自cell.hpp
class Cell
{
public:
Cell();
int live;
int neighbours;
};
摘錄
Cell cells[80][72];
for(int x = 0; x < 80; x++){
for(int y = 0; y < 72; y++){
cells[x][y] = new Cell();
}
}
摘錄from cell.cpp
Cell::Cell()
{
srand(time(0));
this->live = rand() % 2;
this->neighbours = 0;
}
我懷疑我需要在Cell類的構造函數上進行某種重載,但我不知道如何爲這種情況實現一個類。
'Cell * cells [80] [72];' – jclin
您需要一個'Cell' __pointers__數組或者'Cell' __objects__數組嗎?我假設你在這種情況下實際上並不想使用'new'。你也不想在'Cell'構造函數中調用'srand()'。只需在'main()'中調用'srand()'一次。 – Blastfurnace
不要使用'new'。如果你真的需要,可以使用管理動態內存的東西。 – chris