C,C ++和QT的新手。
我理解“&”的用法用于检索指针指向的地址位置, 但我正在阅读一些C ++示例,我看到以下内容:
int rowCount(const QModelIndex &parent = QModelIndex()) const ;
bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
使用“&”在“& parent”和“& index”中的意思是“传递参考”?
如果是这样,为什么“&”就在“父母”之前,在“索引”之前有一个空格?
这些与“QModelIndex& parent”的写作相同吗?
感谢您的帮助。语法可能相当混乱。
答案 0 :(得分:3)
你是正确的,在变量/参数声明中,&符号(&)表示“引用”。在函数参数的上下文中,它等同于“按引用传递”。
C ++并不关心空白。它允许您在各种符号/运算符之前和/或之后放置空格,例如&符号。它可以区分标识符(例如类型和变量名称),因为标识符只能包含字母数字和下划线。这意味着这些都直接相同:
QModelIndex& parent;
QModelIndex &parent;
QModelIndex & parent;
答案 1 :(得分:1)
使用“&”在“& parent”和“& index”中的意思是“传递参考”?
是
如果是这样,为什么“&”就在“父母”之前,在“索引”之前有一个空格?
因为有些人把空间放在不同的地方给别人。它不会影响意义。
这些与“QModelIndex& parent”的写作相同吗?
它们与const QModelIndex& parent
相同。空格不会影响含义,但const
限定符指定函数不能(合法地)修改对象。
答案 2 :(得分:1)
在这样的情况下,空间永远不会重要,C ++几乎总是忽略空格。
所以是的,那将是相同的:两者都会声明这些参数是引用。
答案 3 :(得分:1)
使用“&”在“& parent”和“& index”中的意思是“传递参考”?
是肯定的。
如果是这样,为什么“&”就在“父母”之前,“指数”之前有一个空格?
& index
名为&index
这些与将它作为“QModelIndex& parent”写成一样吗?
是