C++学习笔记(二)

2014-11-24 02:54:36 · 作者: · 浏览: 1

1.1构造函数

class Time

{

public:

Time(); //无参构造函数声明

Time(int a,int b); //有参构造函数声明

}

(1).构造函数在建立对象时自动执行,且只执行一次。

(2).名字与类名相同。

(3).不具有任何类型,不具有返回值。void Time(); 是错误的。

(4).构造函数不被对象调用。t1.Time();是错误的。

(5).如果用户没有定义构造函数,系统会自动生成一个构造函数,但函数体是空的,没有参数,不执行任何初始化操作。

1.2析构函数

class Time

{

public:

Time(); //无参构造函数声明

Time(int a,int b); //有参构造函数声明

……

~Time(); //析构函数声明

}

(1).~是取反运算符。

(2)析构函数是在撤销对象占用的内存之前完成一些清理工作;static局部对象:在main函数结束或调用exit函数结束程序时,调用static局部对象的析构函数;全局对象:

在main函数结束或调用exit函数结束程序时,调用该全局对象的析构函数;new动态建对象:delete运算符释放该对象时,先调用析构函数。

(3).构造函数可有多个,但析构函数只有一个。

(4).构造函数和析构函数的顺序是栈顺序。

1.3对象数组

Student(int = 1001,int = 18,int = 60); //构造函数声明

Student stud[3] = {60, 70, 78}; //定义对象数组

这三个实参分别作为3个对象的实参。所以,在定义数组提供的实参个数不能超过数组元素个数。

1.4对象指针

(1).对象空间的起始地址就是对象的指针。

(2).

class Time

{

public:

Time(int ,int ,int); // 构造函数声明

int hour;

int minute;

int sec;

void get_time();

}