【发布时间】:2013-04-27 14:38:18
【问题描述】:
我有一个类Board,它包含一个指针数组,称为Space** bo,每个指针都指向Space 类的一个实例。我有一个名为SnakesAndLaddersSpace 的派生类,它继承自Space,而SnakesAndLaddersBoard 继承自Board。
基本上,在我的SnakesAndLaddersBoard 类中,我想将它继承的Space** bo 更改为SnakesAndLaddersSpace** bo,我该怎么做?
这就是我在 SnakesAndLaddersBoard 类中所做的事情
SnakesAndLaddersBoard::Board::Board(int w, int h)
{
width=w;
height=h;//set up the size of the board
bo = new SnakesAndLaddersSpace*[height]; // <<-- error
for(int i = 0; i < height; i++)
{
bo[i] = new SnakesAndLaddersSpace[width];
}
}
这是我遇到的错误
SnakesAndLaddersBoard.cpp|13|错误:从‘SnakesAndLaddersSpace*’到‘Space*’的无效转换[-fpermissive]|
【问题讨论】:
-
在哪里你得到这个错误? 13号线是哪一行?而不是用文本描述你的代码,而是取而代之的是代码,尤其是所涉及的类/变量的声明和定义。
-
@JoachimPileborg,来吧,这只是 sn-p 中的一个点,这种转换只有 2 个候选者。
-
@Lol4t0 我们无法确定这是否是有问题的线路,所以安全总比抱歉好。
-
如果有帮助,我把它放到了一个 pastebin 里,有很多代码,pastebin.com/pMW7RHkk 谢谢
-
这一行是有问题的行 "bo = new SnakesAndLaddersSpace*[height];"
标签: c++ inheritance