Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18689038
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-05-31 08:55:47

const表示常量,意思就是说,被它修饰的对象,成员函数,成员变量,在整个程序运行期间,它的值得保持不变,如果你在程序中改变它,编译器将会报错。
    如下面程序:
#include 
void display(const double &r);
void main()
{
 double d(9.5);
 display(d);
}
void display(const double &r)
{
 //r++;报错 实参不能改变。本来引用是可以改变实参的,加了const后就不能。
 cout<}
    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<}
void R::print() const
{
 cout<}
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<}
void main()
{
 A a1(100),a2(0);
 a1.print();
 a2.print();
}
阅读(274) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~