Я хочу реализовать одноэлементный класс, который получает путь к файлу в качестве параметра. Я попытался написать следующий код. Я знаю, что это не работает, и не хорошо, но я не могу найти, почему ..пытается реализовать простой ostream singleton class
class OutputData {
std::fstream ofile;
std::ostream iout;
static OutputData *odata;
OutputData(const char* path):iout(std::cout), ofile(path) {
if (ofile.is_open()) {
iout = ofile;
}
}
public:
static void print(std::string s) {
iout << s;
}
};
в .cpp
OutputData *OutputData::odata = nullptr;
и теперь я хочу, чтобы каждый класс будет иметь способность к напишите в этот поток.
благодарит
Почему вы хотите использовать синглтон для этого, вместо того, чтобы просто предоставлять поток 'operator <<()' перегрузка для 'OutputData' ?? –
, потому что у меня есть дюжина классов в моем проекте, которые должны использовать этот поток. – itorra
. Вы не поняли, что я говорю: передайте его как ссылку вместо использования синглета, все остальное излишне загромождает ваш дизайн (особенно с большим иерархия классов). –