Const---【const对象和const成员函数及const成员属性总结】

/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 在校学生
* All rightsreserved.
* 文件名称: const总结.cpp
* 作    者:刘旺
* 完成日期:2014年3月16日
* 版本号: v1.0
*
* 输入描述:
* 问题描述:看了贺老师几个视频来总结一下
* 程序输出:
* 问题分析:
*/

#include <iostream>
using namespace std ;

class A{
    public:
        A():num(0),n(0),s(0){}
        A(int i, int j):num(i),n(j){}//static成员变量在类内部初始化可以用构造函数的初始化列表或者采用赋值,
                                      //但是如果在类的外部定义构造函数将不能采用复制只能使用初始化列表
                                    //突然发现构造函数的形参还不能为引用
        int getN()const ; //const成员函数可以调用const成员函数然而const成员函数不能调用非const成员函数
        int getNum() ;   //
    private:
        const int num ;
        const int n ;
        mutable int s ;
};

int A::getN()const//定义中也不能省去const
{
     s = 10 ;       //当对象为const时要想修改成员属性必须要要用mutable来声明
     //num = 0 ;   error!const成员函数不能改变对象的成员属性但是可以访问
     return n ;
}

int A::getNum()
{
     return num ;
}

int main()
{
    const A t(2,2) ; //const对象必须要有初值
    //t.getNum() ; 当c对象为const时将不能使用非const访问和改变成员属性属性在codeblock里const对象直接不能调用非const成员函数
    cout << "n=" << t.getN() << endl ;
    A a ;
    cout << "num=" << a.getNum() ;
    return 0 ;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值