arj*_*soh 2 c++ arrays abstract-class pointers
我在类中创建此函数并收到错误:不允许指向不完整类类型的指针.
就我而言,可以声明一个指向抽象类对象的指针数组.之后,您可以在数组中传递派生类的对象.这段代码的问题在哪里(类Square是抽象的):
public:
Player(int,int);
void captureSquare(Square* []);
void Player::captureSquare(Square* allSquares[22])
{
for(int i=0;i<22;i++){
Square* OnSquare = allSquares[i];
if(OnSquare->getID==squarePosition){
capturedSquare = OnSquare;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
}
你必须确保在类定义的Square是可见的,当你使用这个类(通过取消引用指针).通常是这样的:
// player.hpp
class Square;
class Player
{
void captureSquare(Square* []);
};
Run Code Online (Sandbox Code Playgroud)
// player.cpp
#include "player.hpp"
#include "square.hpp"
void Player::captureSquare(Square* allSquares[22])
{
allSquares[0]->foo(); // need complete class here!
}
Run Code Online (Sandbox Code Playgroud)