设为首页 加入收藏

TOP

C++关于参数为const引用类型的函数调用参数成员函数的一个问题
2014-11-24 13:51:36 来源: 作者: 【 】 浏览:1
Tags:关于 参数 const 引用 类型 函数 调用 成员 一个 问题

刚才遇到这么一个问题:


class Base
{
public:
Base(int b):a(b){}
void getMem()
{
cout << "Base = " << a << endl;
}



};


void MemFcn(const Base& item)
{
item.getMem();
}



当我把一个Base对象引用传递给MemFcn函数时,报错|error: passing ‘const Base’ as ‘this’ argument of ‘void Base::getMem()’ discards qualifiers


思考了一会,想到原来虽然传递的参数为const 引用,但是在函数体里面又调用了另一个函数,而这个函数(即getMem)可能会改变item的值,这与item声明为const是相互矛盾的。因此需要将getMem函数声明为const,以保证不会修改item的值。


所以应修改为:



class Base
{
public:
Base(int b):a(b){}
void getMem() const
{
cout << "Base = " << a << endl;
}



};


void MemFcn(const Base& item)
{
item.getMem();
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux 下摄像头驱动支持情况(ARM .. 下一篇U-Boot的设备管理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: