房天下 > 房天下问答 > 业主生活 > 其他
  • C++的const的位置问题

    class CCounter{public: unsigned m_val; CCounter():m_val(0){} CCounter(unsigned initval):m_val(initval){} ~CCounter(){} unsigned GetVal() const {return m_val;} void SetVal(unsigned x) {m_val=x;} CCounter Add(const CCounter &cnt) { CCounter temp; temp.SetVal(m_val+cnt.GetVal()); return temp; }};如上,里面的unsigned GetVal() const {return m_val;} 为什么const 在中间,如果放到前面如:const unsigned GetVal(){return m_val;}系统就会报错,难道是返回的值不更改? 但是有的函数限制返回值不更改const还是放到了最前面啊,难道是因为短整型unsigned ?? 求解~

    提问者:immarlerype

    发布于2010-12-06

共1个回答
  • 碧海星天 丨Lv 3
    〉〉如上,里面的unsigned GetVal() const {return m_val;} 为什么const 在中间,如果放到前面如:const unsigned GetVal(){return m_val;}系统就会报错,——const在成员函数定义的中间{之前是限制成员变量m_val不更改。const在成员函数定义的前面是限制返回值不更改。两个用法不一样。至于你的例子里为什么const unsigned GetVal(){return m_val;}系统会报错,可能是程序里有改了GetVal()值地方。比如GetVal()++;等。
    +1 2010-12-07 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。