首页 > 编程语言 > 详细

C++之类的常成员

时间:2015-02-27 13:41:54      阅读:261      评论:0      收藏:0      [点我收藏+]

        类的常成员与类的静态成员相似。类的常成员包括常数据成员和常成员函数。

       常数据成员

       在类的成员定义中,使用修饰符const说明的数据成员称为常数据成员。常数据成员必须初始化,并且它的数值不能被更新。常数据成员是通过构造函数的成员初始化列表进行初始化的。

       还是举例说明常数据成员:

<span style="font-size:18px;">#include <iostream.h>
class A 
{
public:
	A(int i);//定义的构造函数
	void Print();//函数体在类外的一般成员函数
	const int &r;//整型常数据成员的引用
private:
	const int a;//一般的常数据成员
	static const int b;//静态的常数据成员
};
const int A::b=15;//给静态的常数据成员赋值
A::A(int i):a(i),r(a)//通过构造函数的初始化列表进行初始化
{
}
void A::Print()//一般成员函数的函数体
{
	cout<<a<<","<<b<<","<<r<<endl;
}
void main()
{
	A a1(50),a2(30);//定义有参数的两个对象
	a1.Print();//通过对象来引用成员函数
	a2.Print();
}</span>

分析:(1)该程序中定义了三个常数据成员,分别为const  int  &r;    const   int   a;   static   const  int   b;

           (2)一般的常数据成员的初始化需要构造函数初始化列表进行初始化。

           (3)通过使用构造函数对两个对象进行初始化,把i赋值给a,再把a赋值给r。在这个过程中,一旦赋值就不再更新,b的数值也是被赋值后一直保持不变。因此结果为:50,15,50和30,15,30.

技术分享

 

       常成员函数

       在类的成员函数中,使用const修饰符说明的成员函数称为常成员函数。在程序中,只有常成员函数才被常对象引用。常成员函数的定义格式为:<类型说明符>  <函数名>  ( <参数表>)  const 其中,在该函数的实现部分也要加const。

       举例来说明常成员函数:

<span style="font-size:18px;">#include <iostream.h>
class B 
{
public:
	B(int i,int j)//定义的带两个参数的构造函数
	{ b1=i;b2=j;}
	void Print();//函数体在类外的一般成员函数
	void Print() const;//函数体在类外的常成员函数
private:
	int b1,b2;
};
void B::Print()//一般成员函数的函数体
{
	cout<<b1<<";"<<b2<<endl;
}
void B::Print() const//常成员函数的函数体
{
    cout<<b1<<":"<<b2<<endl;
}
void main()
{
	B bb1(12,5);//定义的一般对象
	bb1.Print();//通过对象来引用成员函数
	const B bb2(10,9);//定义的类的常对象,只能引用常成员函数
	bb2.Print();
}</span>

分析(1)程序中出现了两个重载函数,void Print()和void Print() const。一个是一般的成员函数,后者是常成员函数。

       (2)通过调用构造函数进行对象的初始化,结果为12;5和10:9

技术分享

 


 


 

       

     

C++之类的常成员

原文:http://blog.csdn.net/erlian1992/article/details/43964981

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!