当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

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();
}
相关内容
赞助商链接