定义一个对象时,C++ 会自动调用构造函数建立该对象并进行初始化,当一个对象的生 命期结束时,C++也会自动调用一个特殊的成员的数进行善后工作,这个特殊的成员雨数即为析构的数( destructor)。
①析构函数名与类名相同,但在前面加上字符 ‘~’ 如Coods()。
②析构函数无函数返回类型在这方面与构造函数是一样的。 但析构函数不带任何参数。
③一个类有一个且只有个析构函数, 这也与构造函数不同。析构函数也可以默认。
④注销对象时,系统自动调用析构函数。
矩形类。要确定一个矩形(四边都是水平或垂直方向,不能倾斜),只要确定其左上角和右下角的x和y坐标即可,因此应包括4个数据成员(left、right 、top、bottom), 即左、右、上、下4个边界值。由构造的数给数据成员赋值。赋值函数完成未初始化的矩形赋值,也可以修改各数据成员。并用多文件实现。

#pragma once
#if 0
#ifndef __CIRCLE_H_
#define __CIRCLE_H_

#endif        //和#pragma once等价
#endif
class Rectangle{
	int left,top;
	int right,bottom;
public:
	Rectangle(int l=0,int t=0,int r=0,int b=0);
	~Rectangle(){};
	void Assign(int l,int t, int r,int b);
	void SetLeft(int t){left=t;}
	void SetRight(int t){right=t;}
	void SetTop(int t){top=t;}
	void SetBottom(int t){bottom=t;}
	void Show();
};

将以上内容保存为rect.h

#include<iostream>
#include "rect.h"
using namespace std;
Rectangle::Rectangle(int l, int t,int r,int b){
	left=1,top=t;
	right=r,bottom=b;
}
void Rectangle::Assign(int l, int t,int r,int b){
	left=1,top=t;
	right=r,bottom=b;
}
void Rectangle::Show(){
	cout<<"left-top point is("<<left<<","<<top<<")"<<'\n';
	cout<<"right-bottom point is("<<right<<","<<bottom<<")"<<'\n';
}

将上述内容保存为rect.cpp

#include<iostream>
#include "rect.h"
using namespace std;
int main(){
	Rectangle rect;
	cout<<"	由默认的构造函数生成的rect:"<<endl;
	rect.Show();
	rect.Assign(100,200,300,400);
	cout<<"由赋值函数处理后的rect:"<<endl;
	rect.Show();
	Rectangle rect1(0,0,200,200);
	cout<<"由构造函数生成的rect1:"<<endl;
	rect1.Show();
	return 0;
}

C++矩形类 构造函数的定义与使用-LMLPHP

11-10 19:29