const关键字修饰类

#include <iostream>

using namespace std;

#if 0
1、const修饰数据成员  成员函数  类对象
2、修饰数据成员的时候:
    只能在形参列表里面初始化。
    被const修饰的数据成员,不能被修改
3、修饰成员函数:
    位置:函数声明之后,实现体之前。要求在声明和定义处都要有const
    意义:const 函数承诺,不会修改数据成员
    能访问const 和 非const成员,但不能修改修饰 非const数据成员
    只能访问const成员函数,也就是咱俩都是const成员函数才能在一起玩
    const修饰后还能构成重载
    

4、修饰类对象
    const修饰函数,是从函数层面,不修改数据。
    const修饰对象,是从对象层面,不修改数据。只能调用const成员函数。
    非const成员对象,优先调用非const成员函数,若无,则可调用const成员函数
    
   
    
    
    ;
#endif


class A
{
public:
    A(int v)
        :val(v)     //const修饰数据成员,只能在形参列表里面初始化
    {

    }
    void dis() const
    {
        cout<<val<<endl;
        //x = 200;  这一句就会报错,因为修改了数据成员
        //print();  这一句也会报错
    }
    void dis()      //const修饰成员函数构成重载
    {
        cout<<val<<endl;
    }
    
    void print()
    {
        x = 100;
    }
private:
    const int val;
    int x;
};

int main()
{
    /*A a(5);
    a.dis();*/
    
    const A a(5);//const修饰类对象
    a.print();//这一句就是错的
    a.dis();//这一句正确,这里dis()构成了重载,调用了const成员函数

    return 0;
}

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值