Обычно во всех проектах, над которыми я работал, я видел, как это делается.
Создайте файл myerror.h
:
#ifndef _MYERROR_H__
#define _MYERROR_H__
#ifdef __cplusplus
extern "C" {
#endif
typedef enum errors {
OK,
BADERROR,
LASTENUM
} ERR;
extern const char *err_msg(ERR err);
#ifdef __cplusplus
} // extern C
#endif
И затем файл myerror.cpp
:
#include "myerror.h"
static const char *_errtext[] = {
"OK",
"BADERROR",
"LASTENUM"
};
const char* err_msg(ERR error){
return _errtext[error];
}
Таким образом, вам просто нужно включить myerror.h
из всех файлов, которые вы хотите, и вызывать err_msg(error)
всякий раз, когда вы хотите напечатать ошибку в текстовом формате.Итак, в другом файле у вас будет:
#include "myerror.h"
int method(){
ERR whatever = OK;
std::cout << err_msg(whatever);
... // Some other stuff here
}
Я не уверен, почему вы хотите, чтобы это было сделано в том же файле, но, как я уже сказал, именно так я обычно и вижу.