const参数的问题,如何转换加上const?(c++)

某一函数需要 类型为 shared_ptr<const vector<shared_ptr<OBXX>>>的参数,我的程序需要组装这一参数,所以声明时是shared_ptr<vector<shared_ptr<OBXX>>>,没有其中的const,等我得到值之后要传入,总是报告参数类型不正确,从非const到const不应该是很合理的事吗(又不是从const到非const)?为什么还要求转换?这不是c++语言应该处理的事情吗?如何转换呢?

呼啦一阵风
浏览 746回答 2
2回答

qq_笑_17

楼主用的是哪个编译器,我用VC和g++试了没有问题啊,下面的代码可以正常编译g++的编译命令:g++ -std=c++0x test.cpp不知道楼主是不是下面这个意思#include&nbsp;<vector> #include&nbsp;<memory> using&nbsp;namespace&nbsp;std; class&nbsp;A { public:&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ccc;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;GetCCC() &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this->ccc; &nbsp;&nbsp;&nbsp;&nbsp;} }; void&nbsp;fun(shared_ptr<const&nbsp;vector<shared_ptr<A>>>) { } int&nbsp;main() { &nbsp;&nbsp;&nbsp;&nbsp;shared_ptr<vector<shared_ptr<A>>>&nbsp;a; &nbsp;&nbsp;&nbsp;&nbsp;fun(a);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0; }

米脂

不可以,常量描述,肯定只能在定义时使用,因为他的存储方法编译方式和变量都是不一样的
打开App,查看更多内容
随时随地看视频慕课网APP