Ошибка при использовании перегруженного вывода для оператора потока << - PullRequest
0 голосов
/ 02 января 2019

Я написал перегрузку функции для отображения текста в textEdit как в потоке, но сейчас я не могу понять, как его использовать. Поскольку функции компилируются, но не компилируются при их использовании.

//*.h
class MainWin : public QWidget
{
    Q_OBJECT

public:
    explicit MainWin(QWidget *parent = nullptr);
    ~MainWin();


    friend MainWin *operator<<(MainWin *out,const QString &str);

private:
    void showInConsole(const QString &str);
    Ui::MainWin *ui;
};


//*.cpp
MainWin *operator<<(MainWin *out,const QString &str)
{
    out.showInConsole(str);
    return out;
}

Функция компиляции выполнена успешно. Но при попытке написать и использовать следующий код:

//main.cpp
MainWin *mW = new MainWin;
mW << "Some text";//<< QString("Some text") the same

Это дает мне ошибку:

CurrentSession.cpp: 45: ошибка: недопустимые операнды типов 'MainWin *' и «const char [4]» в двоичный оператор «<<» мВт << "ул"; </p>

               ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...