C++ QT中的过载QDebug
在view.h文件中:C++ QT中的过载QDebug,c++,qt,qdebug,C++,Qt,Qdebug,在view.h文件中: friend QDebug operator<< (QDebug , const Model_Personal_Info &); 标题: class DebugClass : public QObject { Q_OBJECT public: explicit DebugClass(QObject *parent = 0); int x; }; QDebug operator<< (QDebug , const
friend QDebug operator<< (QDebug , const Model_Personal_Info &);
标题:
class DebugClass : public QObject
{
Q_OBJECT
public:
explicit DebugClass(QObject *parent = 0);
int x;
};
QDebug operator<< (QDebug , const DebugClass &);
class调试类:公共QObject
{
Q_对象
公众:
显式调试类(QObject*parent=0);
int x;
};
QDebug操作符尽管当前的答案可以做到这一点,但其中有很多代码是多余的。只需将此添加到您的.h
QDebug operator <<(QDebug debug, const ObjectClassName& object);
Jyo,请不要在你的问题中添加“已解决”或解决方案。。。将任何解决方案作为答案张贴。你的建议与我的建议完全相同。您刚刚编写了注释行,而不是mydbg.nospace()
行数非常不同,除此之外,当然,它是相同的@t3ft3l--i
error: no match for 'operator<<' in 'qDebug()() << personalInfo'
class DebugClass : public QObject
{
Q_OBJECT
public:
explicit DebugClass(QObject *parent = 0);
int x;
};
QDebug operator<< (QDebug , const DebugClass &);
DebugClass::DebugClass(QObject *parent) : QObject(parent)
{
x = 5;
}
QDebug operator<<(QDebug dbg, const DebugClass &info)
{
dbg.nospace() << "This is x: " << info.x;
return dbg.maybeSpace();
}
class DebugClass : public QObject
{
Q_OBJECT
public:
explicit DebugClass(QObject *parent = 0);
friend QDebug operator<< (QDebug dbg, const DebugClass &info){
dbg.nospace() << "This is x: " <<info.x;
return dbg.maybeSpace();
}
private:
int x;
};
QDebug operator <<(QDebug debug, const ObjectClassName& object);
QDebug operator <<(QDebug debug, const ObjectClassName& object)
{
// Any stuff you want done to the debug stream happens here.
return debug;
}