1.对象成员的初始化
一个类中说明具有某个类的类型的数据成员,这些成员称为对象成员
2.静态成员
简单成员函数是指声明中不含有:static、const、volatile关键字的函数
类的数据成员或成员函数使用关键字static进行修饰,这样的成员称为静态数据成员或静态成员函数,统一称为静态成员
静态数据成员在类中声明后,需要在文件作用域内(类体外)进行初始化例如:int 类名 :: x(静态数据成员)=25;或者直接在构造函数中使用类成员限定符对其进行初始化例如:类名(int a,int b){类名 :: x =a;n=b}
静态数据成员通常被说明为私有的,通过定义公有静态成员函数来访问静态数据成员
static不是函数类型中一部分,所以在类声明之外定义静态成员函数时不适用static。在类中定义的静态成员函数是内联的
静态成员是类的成员不是对象的成员
类中的任何成员都可以访问静态成员
因为静态成员函数没有this指针,静态成员函数只能通过对象名访问该对象的非静态成员
3.静态成员函数与一般成员函数的不同
可以不指向某个具体的对象,只与类名连用
在没有建立对象之前,静态成员就已经存在
静态成员是类的成员,不是对象的成员
静态成员为该类的所有对象共享,他们被存储于一个公有内存中
没有this指针,所以除非显示地把指针给他们,否则不能存取类的数据成员
静态成员函数不能被说明为虚函数
静态成员函数不能直接访问非静态函数
4.友元函数
友元函数可以存取私有成员、公有成员和保护成员,可以为一个类或函数
友元函数可以访问所在类的所有私有成员、公有成员、保护成员
友元函数不是该类的成员
友元函数声明方式:friend 数据类型 函数所在类名::函数名(参数列表)
友元函数访问对象的私有成员,破坏了封装和数据隐藏,导致程序的可维护性变差
友元函数可以在类中声明时定义,在类外定义的时候,不能使用friend关键字
友元关系是不可传递的,不具有交换性
友元函数的声明可以置于任何部分
5.const对象
const修饰数据成员、成员函数、对象
一个const对象只能访问const成员函数
常量成员包括:常量数据成员、常量成员函数、常量引用
常引用作为参数,提供给函数的该参数的值
声明常对象必须同时进行初始化:类名 const 对象名(参数表)
声明常成员函数:类型标识符 类名:: 函数名(参数列表) const