2015-10-02 141 views
-2

你好,我对编码相当陌生,并且开始使用我的第一个更大的项目来学习更快。
当我尝试太分配内存错误“此声明没有存储类或类型说明符”在工具提示,然后它不会编译。C++:错误:这个声明没有存储类或类型说明符

#ifndef MAP_H 
#define MAP_H 
#include "Headers.h" 
#include "Player.h" 

class Player; 
class Map 
{ 
public: 
    Map(); 
    Player *player; 
    player = new Player; 

    std::vector <std::string> levelData; 

    void Draw(); 
    void Create(); 
    void Open(); 
    void Save(); 
}; 

#endif 
+2

如果你是新来的编码,你应该花时间与教科书,编辑器和编译器,而比堆栈溢出。 –

+0

你可能不需要指针。只要让它成为玩家;'。 –

+0

向构造函数移动“new”。 'Map(){player = new Player;}'。类定义只能有声明和函数。 – knightrider

回答

0
Player *player; 
player = new Player; 

是不对的。你不能在类定义中间有像上面第二行这样的语句。

如果你有一个C++ 11兼容的编译器,你可以使用:

Player *player = new Player; 

理想情况下,你应该在Map构造函数初始化player。这将允许您在“Map.h”中避免使用“Player.h”。

此外,你应该添加

#include <vector> 
#include <string> 

,因为你正在使用

std::vector <std::string> levelData; 
+1

“可以使用”,也许是的,但“应该使用”?嗯... –