const修饰对象,成员函数,成员变量

     const表示常量,意思就是说,被它修饰的对象,成员函数,成员变量,在整个程序运行期间,它的值得保持不变,如果你在程序中改变它,编译器将会报错。

    如下面程序:

#include <iostream.h>

void display(const double &r);

void main()
{
 double d(9.5);
 display(d);
}

void display(const double &r)
{
 //r++;报错 实参不能改变。本来引用是可以改变实参的,加了const后就不能。
 cout<<r<<endl;//9.5
}

    const修饰对象:常对象实例化后将不能被改变,而且常对象也不能调用其它成员函数,那么它有什么用呢?办法是,C++编译器故意设计成,常对象只能调用常成员函数,这是它唯一的对外接口。

    const修饰常成员函数:void method() const; 可以重载void method().

示范代码:

class R
{
public:
 R(int r1,int r2)
 {
  R1 = r1;
  R2 = r2;
 }
 void print();
 void print() const;
private:
 int R1,R2;
};

void R::print()
{
 cout<<R1<<":"<<R2<<endl;
}
void R::print() const
{
 cout<<R1<<":"<<R2<<endl;
}

void main()
{
 R a(5,4);
 a.print();//调用print()
 const R b(20,52);
 b.print();//调用print() const
}

    const修饰常成员变量:必须在构造函数参数列表中初始化。

    示范代码:
class A
{
public:
 A(int i);
 void print();
 const int &r;
private:
 const int a;
 static const int b;
};
const int A::b=10;//静态成员变量必须在内外定义
A::A(int i):a(i),r(a)
{
}
void A::print()
{
 cout<<a<<":"<<b<<":"<<r<<endl;
}

void main()
{
 A a1(100),a2(0);
 a1.print();
 a2.print();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值