首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

const成员函数调用的区别!该怎么处理

2012-04-16 
const成员函数调用的区别!代码如下:C/C++ code#include string#include iostreamusing namespace std

const成员函数调用的区别!
代码如下:

C/C++ code
#include <string>#include <iostream>using namespace std;class Sales_item{    public:        int func(Sales_item &si)const;        int func(Sales_item &si);        Sales_item():ival(1){        }    private:        int ival;};int Sales_item::func(Sales_item &si)const{        return ival;}int Sales_item::func(Sales_item &si){    ival=10;    return ival;}int main(){    Sales_item si1;    cout<<si1.func(si1)<<endl;//非const对象调用非const函数    const Sales_item si2;    cout<<si2.func(si1)<<endl;//const对象调用const函数    system("pause");    return 0;}

  在类中实现const的重载,用非const对象默认调用的是非const成员,如何让非const对象调用const成员呢!
在调用中如何区分调用的const成员和非const成员!const重载只有const的有无的区别,但是在调用中又体现不出成员函数是否有const修饰!!


[解决办法]
const_cast
[解决办法]
const_cast<const Sales_item&>(si1).func(si1)
[解决办法]
static_cast<const Sales_item &>(si1).func(si1)
[解决办法]
呵呵 非常量成员优先调用非常量成员函数! 常量成员只能调用常量成员函数

热点排行