Переформатирование класса C ++ в другие файлы - PullRequest
0 голосов
/ 21 апреля 2020

Я работал над довольно базовым c классом журналирования в c ++. Теперь мне нужно переместить класс за пределы моего основного файла, но я не знаю, что поместить в заголовочный файл. большая часть моей путаницы заключается в перечислении моих уровней регистрации. вот мой код:

#include <iostream>

class Log {
public:
    enum Level {
        LevelError, LevelWarning, LevelInfo
    };
private:
    Level LogLevel = LevelInfo;
public:
    void set_level(Level level) {
        LogLevel = level;
    }
    void Error(const char* message) {
        if (LogLevel >= LevelError) {
            std::cout << "[ERROR]: " << message << std::endl;
        }
    }
    void Warn(const char* message) {
        if (LogLevel >= LevelWarning) {
            std::cout << "[WARNING]: " << message << std::endl;
        }
    }
    void Info(const char* message) {
        if (LogLevel >= LevelInfo) {
            std::cout << "[INFO]: " << message << std::endl;
        }
    }
};

PS Отзывы о том, как я могу улучшить этот ужасный класс, высоко ценятся.

1 Ответ

1 голос
/ 21 апреля 2020

Это на самом деле выглядит просто отлично, если у вас есть. Вы можете поместить все как есть в файл Log.h или разбить его на Log.h/Log.cpp, где .h содержит определение класса, а файл. cpp содержит четыре метода класса.

...