Я заметил кое-что с qDebug () QTextStrean и в общем stdin, stdout хочу спросить, как это работает на самом деле, посмотрите это:
ЭТО РАБОТАЕТ!
метод showmenu () используя QTextStream
showMenu(){
QTextStream m_out(stdout);
QTextStream m_in(stdin);
m_out() << "Hey";
}
ЭТО НЕ РАБОТАЕТ!
.час
//declaration
public:
QTextStream m_out;
QTextStream m_in;
.CPP
//method showMenu()
showMenu(){
m_out(stdout);
m_in(stdin);
m_out() << "Hey";
}
Я заметил, что у него есть проблема с перегрузкой, потому что также qDebug () использует stdout … я прав?
Выдает эту ошибку:
1> D: .. \ App_console.cpp (20,15): ошибка: не соответствует
вызов ‘(QTextStream) (_IO_FILE *&)»
Я включил cstdio
Ты хоть представляешь, что это может быть?
До C ++ 11, вам нужно будет сделать это в вашем Список инициализации конструктора.
В определении конструктора вашего класса, скажите MyStreamer
Вы можете инициализировать это так:
class MyStreamer{
....
public:
QTextStream m_out;
QTextStream m_in;
};
В вашем файле .cpp:
MyStreamer::MyStreamer(...) : m_out(stdout), m_in(stdin) {
....
}
В C ++ 11 и выше вы можете просто использовать равномерная инициализация:
class MyStreamer{
....
public:
QTextStream m_out{stdout};
QTextStream m_in{stdin};
};
Других решений пока нет …