首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTextStream的operator <<

QTextStream的operator <<
EN

Stack Overflow用户
提问于 2021-05-09 05:51:49
回答 1查看 61关注 0票数 0

I重写operator<<

代码语言:javascript
复制
QTextStream &operator<<(QTextStream &out, const QPair<quint8, qint32>& pair)
{
    out << QString("QPair<%1, %2> ").arg(QString::number(pair.first))
           .arg(QString::number(pair.second));
    return out;
}

如何为不同类型的QPair制作此操作的模板

比如: QPair等等。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-05-09 06:22:32

你只需要把你的函数变成一个函数模板,用模板参数替换硬编码的类型,如下所示:

代码语言:javascript
复制
template<class T, class U>
QTextStream& operator<<(QTextStream& out, const QPair<T, U>& pair) {
    out << QString("QPair<%1, %2> ")
               .arg(QString::number(pair.first))
               .arg(QString::number(pair.second));
    return out;
}

要使模板不仅适用于数字Qt类型,请让这些类型的内置operator<<重载来完成此工作:

代码语言:javascript
复制
template<class T, class U>
QTextStream& operator<<(QTextStream& out, const QPair<T, U>& pair) {
    return out << "QPair<" << pair.first << ", " << pair.second << '>';
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67452476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档