构造函数 当遇到以上的每一个语句时,将隐式地调用 个构造( constructor函数,这个构造函 数属于一个与它同名的类。 在 Point类的定义中声明了两个构造函数,构 造函数的参数用于初始化表达式的值。 例如,当使用声明 Point p(6,3)建立Pont 类的对象p时调用了构造函数 Point(int, int)通过以下函数定义,将其x,y分量设定为 6,3: Point : Point (int a, int b)ix=a;y=b; y Point :: Point (int a, int b): X(a), y(bi]
构造函数 ◼ 当遇到以上的每一个语句时, 将隐式地调用 一个构造(constructor)函数, 这个构造函 数属于一个与它同名的类。 ◼ 在Point类的定义中声明了两个构造函数, 构 造函数的参数用于初始化表达式的值。 ◼ 例如, 当使用声明 Point p(6, 3) 建立 Point 类的对象 p 时,调用了构造函数 Point (int, int);通过以下函数定义, 将其x, y分量设定为 6, 3: Point :: Point (int a,int b) { x = a; y = b; } Point :: Point (int a,int b) : x(a), y(b) { }
构造函数可以定义默认值。例如 Point Point( int a=0, int b=0) x(a),y(b){} 当定义实例时给定初始值,则该实例以给 定初始值来初始化其数据成员 Point p(6, 3); 则有x=a=6,y=b=3 当定义实例时末给出初始值。则该实例 以默认值来初始化其数据成员 Point g; 则有x=a=0,y=b=0
◼ 构造函数可以定义默认值。例如 Point :: Point ( int a = 0, int b = 0 ) : x(a), y(b) { } ◼ 当定义实例时给定初始值, 则该实例以给 定初始值来初始化其数据成员 Point p(6, 3); 则有 x = a = 6, y = b = 3 ◼ 当定义实例时未给出初始值。则该实例 以默认值来初始化其数据成员 Point q; 则有 x = a = 0, y = b = 0
析构函数 当要放奔对象时,需隐式地调用另一个函数, 叫做析构( destructor)函数,它属于名字相同 的类,但在名字前面加上了一个 例 如 ~ Point。 为一个类可定义几个构造函数,但只能定义 个析构函数。当控制要退出自动变量的作 用域时,或当通过 delete命令释放一个动 态分配的变量时,就要调用析构函数。当 main函数执行结束时,将释放静态声明的 变量。 一个析构函数用于在删除一个类的对象时做
析构函数 ◼ 当要放弃对象时, 需隐式地调用另一个函数, 叫做析构(destructor)函数, 它属于名字相同 的类, 但在名字前面加上了一个“~”。例 如 ~Point。 ◼ 为一个类可定义几个构造函数,但只能定义 一个析构函数。当控制要退出自动变量的作 用域时, 或当通过 delete 命令释放一个动 态分配的变量时, 就要调用析构函数。当 main函数执行结束时,将释放静态声明的 变量。 ◼ 一个析构函数用于在删除一个类的对象时做 清除工作