Hallo,
nach langem Probieren habe ich es immer noch nicht geschafft folgende Compilermeldung wegzubekommen (Fehler in Game.cpp):
error: 'CommandStatus' was not declared in this scope
error: expected ';' before 'status'
Könnte es an den Include guards liegen? Je nach Reihenfolge der Includeguards in der .cpp wird einmal die Klasse CommandStatus oder CommandQuit von der Sichtbarkeit nicht erkannt CommandStatus und CommandQuit sind dabei von Command abgeleitet. CommandStatus sieht hier genau so aus wie CommandQuit. Ich freue mich über jeden Ratschlag
nach langem Probieren habe ich es immer noch nicht geschafft folgende Compilermeldung wegzubekommen (Fehler in Game.cpp):
error: 'CommandStatus' was not declared in this scope
error: expected ';' before 'status'
Könnte es an den Include guards liegen? Je nach Reihenfolge der Includeguards in der .cpp wird einmal die Klasse CommandStatus oder CommandQuit von der Sichtbarkeit nicht erkannt CommandStatus und CommandQuit sind dabei von Command abgeleitet. CommandStatus sieht hier genau so aus wie CommandQuit. Ich freue mich über jeden Ratschlag
Code:
//----------------Game.h-------------
#ifndef GAME_H_INCLUDED
#define GAME_H_INCLUDED
#include "Command.h"
#include "CommandStatus.h"
#include "CommandQuit.h"
class Game
{
private:
public:
Game();
int run();
};
#endif //GAME_H_INCLUDED
//----------------Game.cpp-------------
#include "Command.h"
#include "CommandQuit.h"
#include "CommandStatus.h"
#include "Game.h"
#include <iostream>
#include <vector>
int Game::run()
{
std::string input;
std::vector<Command*> commands;
// Create our commanmd list
CommandStatus status = CommandStatus("status");
CommandQuit quit = CommandQuit("quit");
//commands.push_back(&quit);
commands.push_back(&status);
return -2;
}
//----------------Command.h-------------
class Command
{
public:
Command(std::string name);
virtual int execute() = 0;
private:
std::string command_name_;
};
//----------------CommandStatus.h-------------
#ifndef COMMAND_VIEW_H_INCLUDED
#define COMMAND_VIEW_H_INCLUDED
#include "Command.h"
#include <iostream>
#include <string>
#include <vector>
class CommandStatus : public Command
{
private:
public:
CommandStatus(std::string name);
virtual int execute();
};
#endif //
//----------------CommandStatus.cpp-------------
#include "CommandStatus.h"
#include <iostream>
#include <string>
#include <vector>
CommandStatus::CommandStatus(std::string name)
: Command(name)
{
}
int CommandStatus::execute()
{
std::cout << "executed" << std::endl;
return 1;
}