qq_27489903
改变明天
采纳率85.7%
2015-12-25 15:29 阅读 1.6k
已采纳

关于c运算符重载的问题

最近看到一段代码
bool operator < (const xx&x) const{...}
这是将运算符重载,
请问参数表列后加了一个const是什么意思?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2015-12-25 15:33

    两个const参数中的那个说明参数本身是常量,不能修改。后面那个表示,这个函数不会修改任何对象实例中的成员。

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2015-12-25 15:37

    举例

     class A
    {
        int x;
        public: void foo() const { /* x = 1; */ }
        public: void bar() { x = 1; }
    };
    int main()
    { }
    
    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2015-12-25 15:37

    去掉注释,则编译不通过,原因,常成员函数不能修改成员变量

    点赞 评论 复制链接分享

相关推荐