函数调用中“&”的用法混淆 C、C++和QT.

函数调用中“&”的用法混淆 C、C++和QT.,c++,pointers,C++,Pointers,我理解&用于检索指针指向的地址位置, 但是我正在通过一些C++例子,我看到以下内容: int rowCount(const QModelIndex &parent = QModelIndex()) const ; bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole); &in&parent和&index平均值的使用是否通过引用传递 如果是这样的话,

我理解&用于检索指针指向的地址位置, 但是我正在通过一些C++例子,我看到以下内容:

int rowCount(const QModelIndex &parent = QModelIndex()) const ;
bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
&in&parent和&index平均值的使用是否通过引用传递

如果是这样的话,为什么&就在父级之前,而before索引中有一个空格

这些是否与将其作为QModelIndex&parent写入相同

谢谢你的帮助。语法可能相当混乱

&in&parent和&index平均值的使用是否通过引用传递

如果是这样的话,为什么&就在父级之前,而before索引中有一个空格

因为有些人把空间放在不同的地方。它不影响意思

这些是否与将其作为QModelIndex&parent写入相同


它们与const QModelIndex和parent相同。空间不影响含义,但是const限定符指定函数不能合法地修改对象。

空格在这些情况下从来都不重要,C++几乎总是忽略空白。 所以是的,那是一样的:两者都会声明目标是参考物

&in&parent和&index平均值的使用是否通过引用传递

如果是这样的话,为什么&就在父级之前,而before索引中有一个空格

&索引是smae as&index

这些是否与将其作为QModelIndex&parent写入相同


是的。

在变量/参数声明中,符号和表示引用是正确的。在函数参数的上下文中,等同于通过引用传递

C++不太关心空格。它允许您在各种符号/运算符(如与)之前和/或之后放置空格。它可以将它们与类型和变量名等标识符区分开来,因为标识符中只能包含字母数字和下划线。这意味着这些都是直接等价的:

QModelIndex& parent;
QModelIndex &parent;
QModelIndex & parent;

我建议您阅读一下。这些问题表明您对所涉及的技术严重缺乏了解,因此超出了SO的范围。请先参考适当的初学者教程或其他相关文档。@Devulus:新手问题并非StackOverflow的主题。“只要问题的形式合理,主题明确,海报就可以提出最基本的问题。@JohnDibling,我觉得这有点让人困惑,因为在meta上总是有讨论指出So不是初学者学习的地方。”。这是最低限度理解的原因之一。@Devolus,你对技术严重缺乏理解是错误的。。。当我读到这个问题时,我的第一个想法是,single&with空格被用作一种稍微明智的AND操作。虽然我可能对这门语言的全部语法没有百科全书式的知识,但我在近20年的时间里一直在专业地、成功地学习这门语言。我从来没有在我的指针引用中加空格,这样会产生误解,只是强调了我没有接触过它。说我严重缺乏理解显然是不正确的;或QModelIndex&parent;等等谢谢你的快速回复。我现在完全明白了。