-1
class RandomFleet : public PlaceFleet
{

这是我的 RandomFleet,需要从 Placefleet 继承。(这是在 RandomFleet.h 中)

我的错误:无效使用未定义类型'class Battleships::PlaceFleet'

我已经包含了“PlaceFleet.h” 我已经尝试过 class Battleships::RandomFleet : public BattleShips::PlaceFleet

我不知道为什么它不能正确继承。

编辑:也不是 PlaceFleet 和 RandomFleet 都是“战舰”命名空间的一部分 - 我不是“使用命名空间战舰”所以我怀疑这与它有关吗?

用代码编辑:

#ifndef PLACEFLEET_H_
#define PLACEFLEET_H_
#include"Place.h"
#include"Board.h"
class Battleships::PlaceFleet
{ //Functions and variables };
#endif

//上面是 PlaceFleet.h,下面是 RandomFleet.h

#ifndef RANDOMFLEET_H_
#define RANDOMFLEET_H_
#include"PlaceFleet.h"
class RandomFleet : public PlaceFleet
{//This is where compiler shows error
//Functions and variables
};
#endif
4

2 回答 2

2

这是您应该遵循的模板:

// PlaceFleet.h
#ifndef PLACEFLEET_H_
#define PLACEFLEET_H_

class PlaceFleet {

};

#endif

// RandomFleet.h
#ifndef RANDOMFLEET_H_
#define RANDOMFLEET_H_

#include "PlaceFleet.h"

class RandomFleet : public PlaceFleet {

};

#endif
于 2012-04-17T03:38:45.500 回答
0

那是因为我没有使用

namespace Battleships
 {
   //classes here
 }

(我试图做类战舰::PlaceFleet)

于 2012-04-18T03:59:39.527 回答