为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

楼主用的是哪个编译器,我用VC和g++试了没有问题啊,下面的代码可以正常编译

g++的编译命令:g++ -std=c++0x test.cpp

不知道楼主是不是下面这个意思

#include <vector>
#include <memory>
using namespace std;
class A
{
public:    
    int ccc;    
    int GetCCC()
    {        
         return this->ccc;
    }
};
void fun(shared_ptr<const vector<shared_ptr<A>>>)
{
}
int main()
{
    shared_ptr<vector<shared_ptr<A>>> a;
    fun(a);    
    return 0;
}


查看完整回答
反对 回复 2018-11-14
?
米脂

TA贡献1836条经验 获得超3个赞

不可以,常量描述,肯定只能在定义时使用,因为他的存储方法编译方式和变量都是不一样的

查看完整回答
反对 回复 2018-11-14
  • 2 回答
  • 0 关注
  • 745 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信