码迷,mamicode.com
首页 > 其他好文 > 详细

const对象 不能调用非const修饰的成员函数

时间:2018-04-09 13:11:32      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:ott   draw   idt   成员变量   convert   getheight   raw   ann   const   

class 

class UIRect:public RECT
{
public:

    UIRect(LONG leftT = 0, LONG topT = 0, LONG rightT = 0, LONG bottomT = 0)
    {
        left = leftT;
        top = topT;
        right = rightT;
        bottom = bottomT;
    }

    int GetWidth() const 
    {
        return right - left;
    }

    int GetHeight() const
    {
        return bottom - top;
    }


};

  

void DrawRect(const UIRect& rect)
{
    rect.GetWidth();
}

//只有函数右边带了const,才能被const对象使用,否则报编译错误,error C2662: ‘UIRect::GetWidth‘ : cannot convert ‘this‘ pointer from ‘const UIRect‘ to ‘UIRect &‘

const的两个用法

1. const修饰对象不能修改对象,

2. const在成员函数右边表示不能修改成员变量,

这两个是联系在一起的,也就说明const在成员函数右边是不能重载的

 

const对象 不能调用非const修饰的成员函数

标签:ott   draw   idt   成员变量   convert   getheight   raw   ann   const   

原文地址:https://www.cnblogs.com/yuzhould/p/8758917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!