将重载输出用于流运算符<<时出错

时间:2019-01-02 03:13:55

标签: c++ qt

我编写了函数重载功能,以像在流中一样在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]'转换为二进制'operator <<'            mW <<“ str”;

               ^

0 个答案:

没有答案