一、类与对象
类的定义形式
类是一群具有相同属性、行为的对象的描述(抽象)
class 类名称(一般首字母要大写)
{
public:
公有成员(外都接口) 任何外部函数都可以访问
private:
私有成员 只允许外部成员访问
protected:
保护型成员 与继承有关
};
属性一般定义成private,行为一般定义为public,这样就实现了封装
举例:
class Clock{
private:
int hour ,minute,second;
public:
void seTime(int newH,int newM,int newS);
void showTime();
};
成员函数定义的方法:
返回类型 类名::成员函数名(参考说明)
{
函数体
}
构造函数定义形式:
类名::类名(参考说明)
{
初始代码
}
构造函数是一种特殊的函数的成员函数,它为对象初始化提供了功能更强,使用更方便的途径
构造函数的特点:
1.构造函数的名字必须与类的名字相同;
2.定义构造函数时不能指定返回类型;
3.构造函数的代码与其他函数一样,但是一般不直接调用(显示调用)
4.创建类的一个新对象时,会隐式地自动调用构造函数。也就是说,当程序中声明一个新对象时,程序会自动调用该对象所属类中定义的构造函数来初始化这个对象的状态;
5.若在定义类时没有定义构造函数,C++会自动为该类创建一个缺省(default)d的构造函数。这个缺省函数没有任何形式参数,且函数体为空
析构函数
1.定义:析构函数也是一种特殊的成员函数,它在对象撤销时执行一些清理任务
例如在建立对象时用new开辟一片内存空间,delete会自动调用析构函数后释放内存。
析构函数定义形式:
类名L::~类名(){
}
析构函数的特点:
1.析构函数的名字必须是在类名上加上一个波纹号“~”,以区别于构造函数;
2.定义析构函数时也不能指定返回类型;
3.在对象消亡时,隐式地自动调用析构函数。也就是说,当程序中一个对象作用结束时,程序会自动调用该对象所属中定义地析构函数来消除这个对象所占的存储空间;
4.若在定义类时没有定义析构函数,C++会自动为该类创建一个缺省的析构函数。这个析构函数没有任何形式参数,且函数体为空
默认构造函数
1.调用时可以不需要参数的构造函数都是默认构造函数
2.当不定义构造函数时,编译器自动默认构造函数
3.在类中可以自定义无参数的构造函数,也是默认构造函数
4.全部参数都有默认形参值的构造函数也是默认构造函数
5.下面两个都是默认构造函数,如果在类中同时出现,将产生编译错误:
Clock();
Clock(int newH=0,int newM=0,int nwsS=0);