常对象与常成员

1、常对象与常成员函数
1)定义对象时被const修饰的对象,常对象的数据成员的值在对象的整个生存期内都不能被改变。
2)在定义常对象时必须进行初始化,而且不能被更新,如:
const classA objectA(20);
其中,objectA是类classA的一个常对象,20是传给它的构造函数的参数
3)常成员函数
在C++中,常对象只能调用常成员函数,而常成员函数只能读类数据成员,不能更新对象的数据成员,也不能调用该类的成员函数
常成员函数定义示例:

class X
{
    int i;
public:
    int fun(void) const;
};

int X::fun(void) const
{
    return i;
}

2、常数据成员
1)定义:被const修饰的数据成员
2)如果在一个类中说明了常数据成员,那么构造函数只能通过初始化列表对该数据成员进行初始化,而任何其他函数都不能对该成员赋值
常数据成员示例:

// 常对象与常成员.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

class ClassA
{
    int X;
    const int Y;                // 声明为常数据成员

public:
    ClassA(int M, int N):Y(N)   // 用初始化列表对常数据成员进行初始化
    {
        X = M;
    }

    void GetX(void) const
    {
        cout << (X + Y) << endl;
    }

};



int _tmain(int argc, _TCHAR* argv[])
{
    ClassA ObjectA(10, 30);

    ObjectA.GetX();

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值