C++ Identificateur non déclaré (mais elle est déclarée?)
Je suis sûr que je ai inclus le qanda classe, mais quand j'ai essayer de déclarer un vecteur qui contient ou une classe de ce type, je reçois un message d'erreur indiquant que qanda est pas défini. Toute idée de ce que peut être le problème?
bot_manager_item.h
#pragma once
#include "../bot_packet/bot_packet.h"
#include <vector>
class bot_manager_item;
#include "qanda.h"
#include "bot_manager.h"
class bot_manager_item
{
public:
bot_manager_item(bot_manager* mngr, const char* name, const char* work_dir);
~bot_manager_item();
bool startup();
void cleanup();
void on_push_event(bot_exchange_format f);
bool disable;
private:
void apply_changes();
bot_manager *_mngr;
std::string _name;
std::string _work_dir;
std::string _message;
std::string _message_copy;
std::vector<qanda> games;
qanda test;
char _config_full_path[2600];
};
qanda.h
#ifndef Q_AND_A
#define Q_AND_A
#include "users.h"
#include "..\bot_packet\bot_packet.h"
#include "bot_manager.h"
#include <string>
#include <algorithm>
#include <map>
#include <vector>
#include <fstream>
class qanda
{
public:
qanda(bot_manager * manager, std::string name, std::string directory);
~qanda(){};
void room_message(std::string username, std::string user_message);
void timer_tick();
private:
//data members
std::string question;
std::string answer;
std::string directory;
std::string command_prefix;
std::string name;
Users users;
std::map <std::string, std::string> questions_and_answers;
int time_per_question; //seconds
int time_between_questions; //seconds
int timer; //milliseconds
bool is_delayed;
bool is_playing;
bot_manager * manager;
//functions
void new_question();
void send_message(std::string msg);
void announce_question();
void load_questions();
};
#endif
Résolu: j'ai fini le refactoring du code de manière à éviter l'utilisation de bot_manager dans le qanda classe.
- Pouvez-vous poster le message d'erreur réel?
- En gros c'était: Intellisense: qanda Identificateur non déclaré.
- Je suis en train de travailler sur la résolution d'autres bugs maintenant.
Vous devez vous connecter pour publier un commentaire.
Je soupçonne une circulaire
#include
problème. Est-il possible qanda.h inclut indirectement bot_manager_item.h?On dirait que vous pourriez être en mesure de réduire les en-tête des dépendances en utilisant un déclaration
au lieu de
#include "bot_manager.h"
dans un ou deux de vos posté fichiers d'en-tête.