C++常成员

#include <iostream>
#include<cstdio>
#include<string>
using namespace std;
class A
{
public:
    A():b(m_a),m_a(10)//初始化顺序按照声明顺序
    {}
    A(int data):m_a(data)
    {
        //m_a=data //常变量只能初始化不能复制
    }
    void print()
    {
        cout << m_a << "\t" << b << endl;
    }
    private:
    mutable int b;
    const int m_a;//常成员变量必须使用初始化参数列表初始化,初始化之后不能修改
};
class Student
{
public:
    Student(string const& name,int age):m_name(name),m_age(age)
    {}
    void print(/* Student* const this */ ) const
    {
        cout << m_name << "," << m_age << endl;
    }
    void print(/* Student* const this */)
    {
        cout << m_name << "," << m_age << endl;
    }
private:
    string m_name;
    int m_age;
};
//常对象
//被const修饰的对象,对象指针或者对象引用,统称为常对象
//常对象只能调用常函数
//非常对象可以调用常函数,优先调用非常
int main()
{
    //const 修饰前面的
    Student stu("石忠祥", 18);
    stu.print();
    const Student stul("hin", 20);
    stul.print();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值