C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – const向量引用重载大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
为简单起见,只需传递部分代码即可.

class A {
public:
std::vector<int> & get(){ return myVector;}
const std::vector<int> & get() const {return myVector;}
private:
   std::vector<int> myVector;
}

我的问题是如何涉及重载的const get@L_450_1@.当我尝试创建const_iterator和调试代码时,它涉及非const@L_450_1@.
想要了解它的工作原理我使用以下代码

A myA;
myA.get().push_BACk(1);
for (const auto& v: myA.get()) { } // it involve not const get method

要么

std::vector<int>::const_iterator cit = myA.get().begin()
//it involves not const method

要么

const std::vector< int > v = myA.get( );
 // involves non-const method

甚至我创建功能

int constVector( const std::vector< int > &constVector )
{
   return constVector[0];
}

int b = constVector( myA.get( ) ); // it involves non-const method

如果不涉及重载const@L_450_1@,那么它的目的是什么?

我做错了什么以及我如何涉及const@L_450_1@.

解决方法

由于myA本身不是const,因此重载解析将有利于非const重载.

这就是我害怕的生活.

如果你想要const版本,那么你可以在调用站点使用COnst_cast,甚至是隐式转换,将myA转换为const类型:

const A& myA_const = myA;

并使用myA_const来调用const重载.

大佬总结

以上是大佬教程为你收集整理的c – const向量引用重载全部内容,希望文章能够帮你解决c – const向量引用重载所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。