美文网首页
C++ const对象与函数

C++ const对象与函数

作者: wangwhatlh | 来源:发表于2021-11-20 11:49 被阅读0次

1.const 修饰类的成员变量,表示成员常量,不能被修改。

2.const修饰函数承诺在本函数内部不会修改类内的数据成员,不会调用其它非 const 成员函数。

3.如果 const 构成函数重载,const 对象只能调用 const 函数,非 const 对象优先调用非 const 函数。

4.const 函数只能调用 const 函数。非 const 函数可以调用 const 函数。

5.类体外定义的 const 成员函数,在定义和声明处都需要 const 修饰符

6.const在*的左边,则指针指向的变量的值,不可直接通过指针改变(可以通过其他途径改变);

在*的右边,则指针的指向不可变。简记为“左定值,右定向”

class Person{
public:
    int m_age;
    float m_weight;
    void display(){
        cout<<"age="<<m_age<<"  weight="<<m_weight<<endl;
    }
    
};
int main(int argc, const char * argv[]) {
    const Person *p = new Person();
    p->display(); //报错
    return 0;
}

p->display();报错 提示'this' argument to member function 'display' has type 'const Person', but function is not marked const
this当前对象是const,const 修饰的对象不能调用非const函数,想要调用需要 void display(){}改为 void display() const{},这时就能调用;另外非const对象也能调用const函数;

相关文章

网友评论

      本文标题:C++ const对象与函数

      本文链接:https://www.haomeiwen.com/subject/lpbytrtx.html