c++——const

const修饰成员函数

用const修饰的成员函数时,const修饰this指针指向的内存区域,成员函数体内不可以修改本类中的任何普通成员变量, 当成员变量类型符前用mutable修饰时例外。

nt myFun(void) const //const修饰的是成员函数
{}//函数内部不能修改 普通成员变量  mutable修饰时例外

const修饰对象 叫常对象

常对象只能调用const修饰的成员函数;

#include <iostream>

using namespace std;

class Data
{
private:
    int data;

    mutable int num;
public:
    void myDataPrint(void)const
    {
        //data = 20000;//err const修饰的成员函数 不可以修改普通成员变量
        cout << this->data << endl;

        num = 1000;//mutable修饰num 可以在const修饰的函数内修改
        cout << this->num << endl;

    }
    void setData(int data)
    {
        this->data = data;
    }

    Data()
    {
        cout << "无参构造"<< endl;
    }
    Data(int data)
    {
        this->data = data;
        cout << "有参构造"<< endl;
    }
    Data(const Data &ob)
    {
        this->data = ob.data;
        cout << "拷贝构造"<<endl;
    }
    ~Data()
    {
        cout <<"析构函数"<< endl;
    }
    void hahaha(void)
    {
        Data haha;
        cout << haha.num << endl;
    }
};
void test0()
{
    Data ob1(100);
    ob1.myDataPrint();
    ob1.hahaha();
}

void test1()
{
    const Data ob2(200);
    //ob2.setData(10000);
    ob2.myDataPrint();
}

int main(int argc, char *argv[])
{
    test0();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值