C++ QList::at()返回对常量的引用?
我在文档中定义了这样一个方法C++ QList::at()返回对常量的引用?,c++,qt,C++,Qt,我在文档中定义了这样一个方法 const T & QList::at(int i) const 根据我在上的描述: at返回对常量对象T的引用,并且不修改QList 但如果这个解释是正确的,它将返回一个我不能更改的对象的引用。但是,这是在没有错误传递的情况下编译的(currentTime()修改returnedStation.time属性): 第一个const是指什么,它在返回的T&上有什么限制 第一个常量引用什么,它在返回的T&上有什么限制 在: 您正在创建通过引用从处返回的值的副本
const T & QList::at(int i) const
根据我在上的描述:
at返回对常量对象T的引用,并且不修改QList
但如果这个解释是正确的,它将返回一个我不能更改的对象的引用。但是,这是在没有错误传递的情况下编译的(currentTime()修改returnedStation.time属性):
第一个const
是指什么,它在返回的T&
上有什么限制
第一个常量引用什么,它在返回的T&上有什么限制
在:
您正在创建通过引用从处返回的值的副本,并且正在修改该副本。不是列表中的对象
那么我的解释是正确的?如何更改Qlist中的确切对象
要修改列表的实际对象,您需要使用:
T& operator[](int)
相反:
list[x] = y;
第一个常量引用什么,它在返回的T&上有什么限制
在:
您正在创建通过引用从处返回的值的副本,并且正在修改该副本。不是列表中的对象
那么我的解释是正确的?如何更改Qlist中的确切对象
要修改列表的实际对象,您需要使用:
T& operator[](int)
相反:
list[x] = y;
执行此操作时:
T referenceToReturnedObject = myQlist.at(1);
referenceToReturnedObject1
是从值返回的引用中复制的副本。你可以做任何你想做的事来复制这本书
如果你想要推荐人,你必须说
const T& referenceToReturnedObject = myQlist.at(1);
如果您想要一个非常量引用
T& referenceToReturnedObject = myQlist[1];
或者只是
myQlist[1].someNonConstMethod();
执行此操作时:
T referenceToReturnedObject = myQlist.at(1);
referenceToReturnedObject1
是从值返回的引用中复制的副本。你可以做任何你想做的事来复制这本书
如果你想要推荐人,你必须说
const T& referenceToReturnedObject = myQlist.at(1);
如果您想要一个非常量引用
T& referenceToReturnedObject = myQlist[1];
或者只是
myQlist[1].someNonConstMethod();
什么是returnedStation
以及它与问题的关系如何?什么是returnedStation
以及它与问题的关系如何?嗯,我在文档中没有找到QList::at()
函数的非常量版本。所以我的解释是正确的?如何更改Qlist中的确切对象?@Alan,使用运算符[]
。使用[]
而不是at()
的唯一大问题是,使用[]
时不会进行越界检查。因此,开发人员必须手动确保使用的索引在给定列表的允许范围内。嗯,我在文档中找不到QList::at()
函数的non-const
版本。那么我的解释正确吗?如何更改Qlist中的确切对象?@Alan,使用运算符[]
。使用[]
而不是at()
的唯一大问题是,使用[]
时不会进行越界检查。因此,开发人员必须手动确保使用的索引在给定列表的允许范围内。