类的声明:类的成员构成
类是一种抽象数据类型,声明如下:
Class ClassName 关键字Class用于声明一个类类型
{
数据成员
函数成员
};
类内: 在类声明之内,类外: 在类声明之外。
c++中通过设置成员的访问控制属性来实现对类成员的访问控制,这些属性控制有:public protected private
类的声明:对成员的访问控制
在声明类时,具有不同访问属性的成员可以按任意顺序出现
修饰访问属性关键字可以多次出现。
class ClassName
{
public:公有成员
protected:保护成员
private:私有成员
}
公有成员:在关键词public后边声明,是类与外部的接口,任何类内、类外函数都可以访问公有数据和函数。
私有成员:在private后面声明,只允许本类中的函数访问,而类外的任何函数都不能访问。
保护成员 :在protect后面声明,为了在派生时使派生类成员能够访问到基类成员,而又不使得基类成员被类外成员访问。
类的使用:
定义对象的方式:类名 对象名 :Clock aclock;
访问类对象的方法:
1、通过对象来访问成员 :对象名.公有成员函数名(实参列表);对象名.公有数据成员;
2、通过对象指针来访问成员:对象的指针->公有成员函数名(实参列表);对象指针->公有数据成员
对象指针:
可以使用对象的指针变量来访问对象以及对象的公有成员。
Clock clock,*p;
p=&clock;
p->SetTime(9,5,25);//clock.SetTime(9,5,25);
p->ShowTime();//clock.ShowTime();
p->SetTime(10,3,28);//clock.SetTime(10,3,28);
p->ShowTime();//clock.ShowTime()
对象数组:
与任何其他数据类型一样,可以创建一个类的对象数组:例如:Clock clocks[10];
通过下标访问数组中的对象,进而访问该对象的共有成员:例如:clocks[3].Showtime();
数组的初始化
1、显示初始化数组元素
const unsigned arr_size=3;
int ia[arr_size]={1,2,3};
2、隐式初始化:
在函数体外顶一顶内置数组,元素均为0;
函数体内定义的内置数组,元素无初始化。
若元素为类类型,无论在哪定义,则自动调用该类的默认构造函数进行初始化。如果该类没有默认构造函数,则必须为该数组的元素提供显示初始化。
对象数组的初始化
实质上就是调用构造函数对每一个数组元素进行初始化的过程。
如果在声明数组时给每一个数组元素的初始值,在初始化过程中就会调用最匹配的构造函数。类似于之前的重载函数中带默认形参的函数规则