c++的类(二)构造函数

小编学完c++给你们分享下笔记
Date() = default; //default 默认构造函数
Date() = delete; //delete 禁用构造函数 禁止拷贝 赋值运算符 delete[] a动态分配删除
explicit Date(); // 就是禁止含隐调用隐式转换
friend void print();// friend是友元 在类中声明 函数或外部类的友元 可以在外部直接访问这个类的 私有或保护成员函数
mutable int a //a是mutable 成员变量 是可以被修改的

关于public:公共的可以看我第一张添加链接描述
下面详解构造函数

class Date
{
	int a = 2000, b{ 1 }, c{ 1 }, s{ 5 };
public:
	Date() = default;	//default 默认构造函数
//	Date() = delete;	//delete 禁用构造函数 禁止拷贝 赋值运算符
//	explicit Date();	// 就是禁止含隐调用隐式转换
	Date(Date &day1) : a{ day1.s }, b{ day1.s }, c(day1.s) { }	//Date() :a{ 2 }, b{ 3 }, c(4){} 也可以给默认构造函数值初始化 初始化成員列表 構造函數後面加: 这总叫硬拷贝
	Date(int x,int y,int n){ 
		a = x; b = y; c = n;
		cout << "構造函數" << endl; 
		print(); 
	} //默认构造这些

	Date &setc(int d){	//这里是取调用地址取的是day1
		c = d;
		return *this;	//返回指针对象引用 可以.
	}

	Date &setb(int d){
		b = d;
		return *this;	//返回指针对象引用 可以.
	}
	Date *seta(int d){	//因为这里释放了调用对象day1所以返回的下面不能继续调用
		a = d;
		return this;	//返回指针
	}
	
	Date print(){
		cout << a << '-' << b << '-' << c<<'\n';
		return *this;
	}

};

int main(){
	Date day(1,2,3);  //在这边声明就会直接调用上面的构造函数 有参
	Date day1;		  // 調用默認構造函數
	Date(day2);		  //Date(Dete &day1) :a{ day1.a }, b{ day1.b }, c(day1.c){} 也可以给默认构造函数值初始化 初始化成員列表 構造函數後面加: 这总叫硬拷贝
	day1.print();	//默认的值
	day2.print();
	
	day1.setc(2001).setb(20).seta(1);	//day1.setc(2001) 返回的是day的指针
	day1.print().print();    //如果调用那次那边555就会被赋值
	day2.print().print().print();
	day2.print();
	getchar();
	return 0;
}	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值