gpt4 book ai didi

Qt 项目中的 C++ 语法

转载 作者:行者123 更新时间:2023-11-28 07:20:05 27 4
gpt4 key购买 nike

我正在尝试编译一个用 C++ 语言的 Qt Project 组件编写的项目,我在其中一个类“DetectAll”中进行了声明,但编译器提示代码语法并恰好在 PointIndex() 处停止。

从该代码中,我了解到 PointIndex 是 Qt 项目固有的变量,并作为函数 DetectAll 中的第二个参数传递。但是编译器也提到了对我来说没有意义的 QPair,你能帮我找出我在这里做错了什么吗?

以下为原代码及编译错误

protected:
.....
bool detectAll(const QPointF& pos, PointIndex& result = PointIndex());

/////////////

D:\....\MAT\Skeleton_source\sswidget.h:87: error: could not convert 'QPair<int, int>()'
from 'SSWidget::PointIndex {aka QPair<int, int>}' to 'SSWidget::PointIndex& {aka QPair<int, int>&}'
bool detectAll(const QPointF& pos, PointIndex& result = PointIndex());
^

最佳答案

改变

PointIndex& result = PointIndex()

PointIndex result = PointIndex()

在你的参数声明中。或者删除默认值。您不能将非常量引用绑定(bind)到临时引用。

您正在为引用分配默认值,这是编译器提示的。另外,似乎 SSWidget::PointIndex类型定义为 QPair<int, int>这就是为什么您看到提到的原因。

相关SO问题here .

关于Qt 项目中的 C++ 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19634094/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com