C++基础 构造函数、拷贝构造函数和析构函数



#include  <iostream> 
using namespace std;

/*
构造函数:
作用:初始化某类的对象  
在一个对象被实例化生成时默认隐式调用
如果我们不写,系统会生成一个默认的构造函数
一旦我们自行实行,系统默认的那个就不会再生成
构造函数可以存在多个
特点:与类同名,无返回值,可传参,也无参

*/


class Clock
{
public:
	Clock(int h=0,int m=0,int s=0);
	void SetTime(int ,int ,int );
	void ShowTime();
private:
	int hour;
	int minute;
	int second;
};

Clock::Clock(int h,int m,int s)
{
	cout << "Clock(3*int=0)" << endl;
	hour = h;
	minute = m;
	second = s;
}
void Clock::SetTime(int h,int m,int s)
{
	hour = h;
	minute = m;
	second = s;
}
void Clock::ShowTime()
{
	cout << hour << ":" << minute << ":" << second << endl;
}

int main()
{
	
	Clock c1;
	Clock c2(8,8,8);
	Clock c3(10);

//	c1.SetTime(6,6,6);
	c1.ShowTime();
	c2.ShowTime();
	c3.ShowTime();


	return 0;
}


#include  <iostream> 
using namespace std;


/*
拷贝构造函数:
作用:初始化某类的对象  
在一个对象被实例化生成时由同类型的其他对象进行初始化时默认隐式调用
如果我们不写,系统会生成一个默认的拷贝构造函数
一旦我们自行实行,系统默认的那个就不会再生成
特点:与类同名,无返回值,参数为同类型的引用

*/


class Clock
{
public:
	Clock(int h=0,int m=0,int s=0);
	Clock(const Clock &);
	~Clock();
	void SetTime(int ,int ,int );
	void ShowTime();
private:
	int hour;
	int minute;
	int second;
};

Clock::Clock(int h,int m,int s)
{
	cout << "Clock(3*int=0)" << endl;
	hour = h;
	minute = m;
	second = s;
}
Clock::Clock(const Clock &other)
{
	cout << "Clock(&)" << endl;
	hour = other.hour;
	minute = other.minute;
	second = other.second;
}
Clock::~Clock()
{
	cout << "~Clock() hour = " << hour << endl; 
}

void Clock::SetTime(int h,int m,int s)
{
	hour = h;
	minute = m;
	second = s;
}
void Clock::ShowTime()
{
	cout << hour << ":" << minute << ":" << second << endl;
}

int main()
{
	Clock c3(10);
	Clock c4 = c3;


	return 0;
}

/*
int i = 1;
int j;
j  = i

int  i = 1;
int j = i;



*/

#include  <iostream> 
using namespace std;


/*
析构函数:
作用:释放与恢复
在一个对象的生命周期即将终止的时候被隐式调用
如果没有自行实现,系统会为我们写一个默认的
一旦自行实行,系统中那个默认的就不会再生成
特点:与类同名,前面加~,无返回值,不允许传参

*/


class Clock
{
public:
	Clock(int h=0,int m=0,int s=0);
	~Clock();
	void SetTime(int ,int ,int );
	void ShowTime();
private:
	int hour;
	int minute;
	int second;
};

Clock::Clock(int h,int m,int s)
{
	cout << "Clock(3*int=0)" << endl;
	hour = h;
	minute = m;
	second = s;
}
Clock::~Clock()
{
	cout << "~Clock() hour = " << hour << endl; 
}

void Clock::SetTime(int h,int m,int s)
{
	hour = h;
	minute = m;
	second = s;
}
void Clock::ShowTime()
{
	cout << hour << ":" << minute << ":" << second << endl;
}

int main()
{
	
	Clock c1;
	Clock c2(8,8,8);
	Clock c3(10);

//	c1.SetTime(6,6,6);
	c1.ShowTime();

	{
		Clock c0(123);	
	}

	c2.ShowTime();
//	c3.ShowTime();


	return 0;
}

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容