c++类和对象

类的引入

C++兼容C

在这里插入图片描述

C++与Cstruct的区别

在这里插入图片描述

类的定义方式

在这里插入图片描述

类的访问限定符及封装

访问限定符

在这里插入图片描述

封装

在这里插入图片描述
在这里插入图片描述

类的作用域

在这里插入图片描述

类的实例化

声明和定义

在这里插入图片描述

实例化

在这里插入图片描述

类对象的存储方式猜测

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

计算大小

在这里插入图片描述

内存对齐

在这里插入图片描述

命名规范

在这里插入图片描述

this指针

this指针的特性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

类的6个默认成员函数

在这里插入图片描述

构造函数

特性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

析构函数

概念

在这里插入图片描述

特性

在这里插入图片描述

拷贝构造函数

概念

在这里插入图片描述

特征

在这里插入图片描述
在这里插入图片描述

拷贝构造和默认构造的关系

// 写了默认构造但是没有写拷贝构造,编译器默认生成 - 默认的拷贝构造
// 下面代码不会报错
class Date
{
public:
	Date()
	{
		cout << "Date" << endl;
	}
};

int main()
{
	Date d;
	Date d1 = d;
	return 0;
}

// 下面代码会报错
// 因为写了拷贝构造但是没有写-构造函数,编译器不会再生成默认的构造函数了,所以会报错
class Date
{
public:
	//Date()
	//{
	//	cout << "Date" << endl;
	//}

	Date(const Date& d)
	{
		cout << "Date(const Date& d)" << endl;
	}

};

int main()
{
	Date d;
	Date d1 = d;
	return 0;
}

赋值运算符重载

运算符重载

在这里插入图片描述

赋值运算符重载

在这里插入图片描述

调用顺序

在这里插入图片描述

前置++和后置++重载

在这里插入图片描述

日期类的实现

日期类中流的重载

在这里插入图片描述

代码

const成员

在这里插入图片描述

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

在这里插入图片描述

再谈构造函数

构造函数体赋值

在这里插入图片描述

初始化列表

在这里插入图片描述

总结

在这里插入图片描述

explicit关键字

在这里插入图片描述

static成员

概念

在这里插入图片描述
在这里插入图片描述

特性

在这里插入图片描述

实现只在栈上创建对象

在这里插入图片描述

匿名函数

在这里插入图片描述

友元

在这里插入图片描述

友元函数

在这里插入图片描述

友元类

在这里插入图片描述

内部类(了解)

在这里插入图片描述
在这里插入图片描述

c++对拷贝构造做的优化

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值