重载qdebug只能输出十六进制地址
时间: 2023-07-09 11:24:07 浏览: 118
Qt实现简单的qDebug输出到日志文件
4星 · 用户满意度95%
重载QDebug的输出操作符可以输出任何类型的值,而不仅仅是地址。下面是一个例子:
```
#include <QDebug>
struct Point {
int x;
int y;
};
QDebug operator<<(QDebug debug, const Point& point) {
QDebugStateSaver saver(debug);
debug.nospace() << "Point(" << point.x << ", " << point.y << ")";
return debug;
}
int main() {
Point p = {1, 2};
qDebug() << p;
return 0;
}
```
输出结果为:
```
Point(1, 2)
```
在这个例子中,我们重载了QDebug的输出操作符来输出自定义的类型Point。我们在输出Point类型值时,可以直接使用QDebug的输出操作符来输出,而不用手动构造输出的字符串。
阅读全文