Кто-нибудь знает, почему это происходит? C ++ «инициализация»: невозможно преобразовать из - PullRequest
0 голосов
/ 11 января 2020

Итак, это мой заголовок для класса:

#include <iostream>
class Board
{
public:
    Board();
    AllPieces* GetBoard();
    void createBoard();

protected:
    AllPieces** everything= new (AllPieces**)[32];

};

Но когда я пытаюсь инициализировать массив 'everything', он говорит об ошибке:

Ошибка C2440 'initializing': не могу преобразовать из AllPieces *** в AllPieces **

1007 * Я не знаю, почему это говорит, что я хочу сделать, это сделать массив указателей из класса AllPieces.

Кто-нибудь может мне помочь, пожалуйста? спасибо

1 Ответ

4 голосов
/ 11 января 2020

Код new (AllPieces**)[32] создает указатель на объект типа AllPieces**, который, таким образом, имеет тип AllPieces***. Если вы уроните один из *, вы получите правильный тип возврата.

Чтобы устранить ошибку, измените строку на:

AllPieces** everything = new AllPieces*[32];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...