记录成长
Just for Fun

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;
}

支付宝扫码打赏 微信扫码打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

未经允许不得转载:天煜博客 » C++基础 构造函数、拷贝构造函数和析构函数

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址