(初学)类和对象及里面的各种定义

 类 对象 构造函数 析构函数(有且仅有一个) 复制构造函数(必须有) 其中析构函数 复制构造函数 若自己不写系统自动生成且调用

对你没看错就这些哈哈 (注意复制构造函数 算了我还是写一下)

哪里会用到复制构造函数?(不知道考不考嘿嘿)

1.调用date(const date&x)(复制构造)函数时

2.用已知的(已经初始化的)对象给一个未知的(正在创建的,还未初始化)对象赋值时

3.在date类的函数里return一个对象初始化匿名函数时(2的容易遗漏的情况)

4.对象是一个函数的实参传值给函数形参

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>

using namespace std;//或 using std :: cout;using std :: cin;

class date{//类
public:
	date(int a,int b,int c);//构造函数1
	date(int a);//构造函数2,
	void print(){
		cout << "Y: " << y << " M: " << m << " D: " << d << '\n';
	}
	date(const date&x);//复制构造函数,传的参数只能初始化一次,若在此定义则函数里无需
	int y,m,d;//private
	~date(){//析构函数
		cout << "byebye : " << y << ' ' << m << ' ' << d << '\n';
	}
};
date :: date(const date&x){ //复制构造函数
	y = x.y,m = x.m,d = x.d;
	cout << "im copy" << '\n';
}
date :: date(int a,int b,int c) : y(a),m(b),d(c){//构造函数1
	cout << "fuzhi1" << '\n';
}
date :: date(int a = 2000) : y(a){  //构造函数2,传的参数a只能初始化一次,且初始化优先于函数里的赋值操作
	m = 10,d = 1;
	cout << "fuzhi2" << '\n';
}
date fun(date d){//copy
	date t;//若改成date t = d;则copy一次
	t = d;
	return t;//copy
}
int main(){
	date date1(2020,9,13),date2(2000,10,1);
	date date3(date1);//复制构造函数date1到date3 //copy
	date2 = fun(date3);
	cout << "date1 : ";
	date1.print();
	cout << "date2 : ";
	date2.print();
	cout << "date3: ";
	date3.print();
	return 0;
}
​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值