Как подключить и использовать класс из другого файла?

  • 20 августа 2023 г. 7:35
Ответы на вопрос 2
Как можно правильно подключить и использовать класс Logger из другого файла? У меня возникает ошибка "не разрешённый внешний символ" при передаче информации через оператор <<. Заметил, что ошибка исчезает, если объявить класс Logger там, где он необходим. Что нужно сделать, чтобы исправить эту проблему?
Измените в коде строку "extern Logger logg" на "Logger logg;", чтобы создать объект logg. Кроме того, обратите внимание на улучшенный код:

#include 
#include 

class Logger {
public:
    Logger() {
        openFile("Logger.txt");
    }

    ~Logger() {
        closeFile();
    }

    template
    Logger& operator<<(const T& value) {
        file << value;

        std::cout << value;

        return *this;
    }

    Logger& operator<<(std::ostream& (*manipulator) (std::ostream&)) {
        file << manipulator;
    
        std::cout << manipulator;

        return *this;
    }

    void openFile(const char *path) {
        file.open(path);

        if(!file.is_open()) {
            throw std::runtime_error("Failed to open 'Logger.txt'");
        }
    }

    void closeFile() {
        file.close();
    }

private:
    std::ofstream file;
};

Logger logger;
logger << 6 << " is six" << std::endl;
Похожие вопросы