1. 一般常量

  int const x=2; 或 const int x=2;

  当然x也可是一个数组,如x[5];int可以被替换为是类名,x为对象名,此时常对象。

    int如果被替换为char*,此时为常指针 如:char* const x 或 const char* x;常引用的格式为 const <类型说明符> & <引用名> 例如:const double & x;

2、下面举一例子说明常指针作函数参数的作法。



#include <iostream>
using namespace std;
const int N = 6;
void print(const int* p, int n);

int _tmain(int argc, _TCHAR* argv[])
{
int arrar[N];
for (int i = 0;i <N;i++)
{
cin>>arrar[i];
}
print(arrar,N);
return 0;
}

void print(const int* p, int n)
{
cout<<"{";
for (int i= 0; i<N;i++)
{
cout<<" "<<*(p+i);

}
cout <<"}";

}


3、常成员函数

  使用const关键字进行说明的成员函数,称为常成员函数。常成员函数说明格式如下:

  <类型说明符> <函数名> (<参数表>) const;

其中,const是加在函数说明后面的类型修饰符,它是函数类型的一个组成部分,因此,在函数实现部分也要带const关键字。常成员函数的特征。

ConstTest.h文件



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


 ConstTest.Cpp文件 



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

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


 实现:



int _tmain(int argc, _TCHAR* argv[])
{

R a(5, 4);
a.print();
const R b(20, 52);
b.print();
return 0;
}


  

 

4、常变量

头文件 ConstTest.h



class A
{
//r是常int型引用,a是常int型变量,b是静态常int型变量。
public:
A(int i);
void print();
const int &r;
private:
const int a;
static const int b;
};


 cpp文件ConstTest.cpp



void A::print()
{
cout<<" const int &r "<< r <<endl <<"Const int a " <<a<<endl << "static const int b " << b <<endl;
}
const int A::b=10;
A::A(int i):a(i), r(a)
{
}


 实现:



int _tmain(int argc, _TCHAR* argv[])
{

A a1(100),a2(0);
a1.print();
a2.print();

return 0;
}