0
点赞
收藏
分享

微信扫一扫

外包干了7天,技术明显退步。。。。。

weednoah 2024-11-06 阅读 16

目录

一、类的6个默认成员函数

二、构造函数

1.概念

2.特性

三、析构函数

1.概念

2.特性

用现有知识做一个简单的栈与队列的实现,有效的括号力扣题:

四、拷贝构造函数

1.概念

2.特性

浅拷贝:

实现深拷贝:​编辑

五、赋值运算符重载

1.运算符重载

2.赋值运算符重载(也是完成对象的拷贝)

3.前置++和后置++重载(--类似)

六、日期类的实现(单独一篇文章写)Date 日期类的实现(c++)-CSDN博客

七、const成员

八、取地址及const取地址操作符重载


一、类的6个默认成员函数

默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。

当类中什么都不写,简称为空类

但不代表这个类中什么都没有,任何类在什么都不写的时候,编译器自动生成一下6个默认成员函数。

二、构造函数

1.概念

class Date
{
public:
	void Init(int year, int month, int day )
	{
		_year = year;
		_month = month;
		_day = day;
	}

private:
	int _year;
	int _month;
	int _day;


};

int main()
{
	Date d1;
	d1.Init(2024, 10, 29);
    return 0;
}

2.特性

三、析构函数

1.概念

2.特性

四、拷贝构造函数

1.概念

2.特性

五、赋值运算符重载

1.运算符重载

实现一个日期大小的比较:

要注意的是,日期的比较还需考虑多方面因素:

	bool operator<(const Date& d2)
	{
		if (_year < d2._year)
		{
			return true;
		}
		else if (_year == d2._year)
		{
			if (_month < d2._month)
			{
				return true;
			}
			else if (_month == d2._month)
			{
				return _day < d2._day;
			}
		}

		return false;
	}

2.赋值运算符重载(也是完成对象的拷贝)

3.前置++和后置++重载(--类似)

//++d  ->d.operator++()
Date& Date::operator++()
{
	*this += 1;
	return *this;
}

//d++,返回++前的值 ->d.operator++(0)(传啥都行,只是为了匹配int)
//为了和前置++区分,强行增加一个int形参,形成重载区分

Date Date::operator++(int)
{
	Date tmp(*this);
	*this += 1;
	return tmp;
}

六、日期类的实现(单独一篇文章写)Date 日期类的实现(c++)-CSDN博客

这写个重点

七、const成员

八、取地址及const取地址操作符重载

举报

相关推荐

0 条评论