我编写了函数重载功能,以像在流中一样在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”;
^