C++学习/复习4--与类相关的概念/默认成员函数/运算符重载/Date类实现案例与相关知识点概述

一、类和对象

1.本章概要

2.C++中的结构体(struct与class) 升级为类

(1)类及成员函数的两种定义方式 

            声明与定义分离

(2)权限 

注意1:struct/class在权限上的区别

(3)封装

(4)作用域

(5)创建对象

(6)对象大小的计算与存储

         注:此处是方式3即成员函数放在公共代码区,非类的内部

注意1:内存对齐的主要原因包括
  • 平台和移植性。不同的硬件平台可能对内存访问有特定的要求。某些硬件平台只能访问特定地址处的特定类型数据,如果数据未对齐,可能导致硬件异常或性能下降
  • 性能。为了提高访问速度,对齐数据可以使处理器更高效地加载数据,减少因数据跨越多个内存页或缓存行而导致的额外访问时间。
  • 存储空间优化。内存对齐有助于减少内存碎片,提高内存利用率,使结构体或对象的大小更加紧凑,节省内存空间。
  • 访问效率。内存对齐使得处理器可以一次访问获取所需数据,而不是进行多次访问。
  • 硬件IO特性。内存的IO操作通常以特定的数据宽度(如64位)为单位进行,因此内存对齐对于提高IO效率至关重要。
 注意2:空类大小

(7)this指针 

1、特性及本质

2.受this影响下C/C++的对比

二、类中的函数与操作符重载

1.本章概要

2.六个默认成员函数

(1)构造函数

          注意1:当手动实现该函数时,保证其函数与类名相同,具体参数、函数体视具体情况定
          注意2:可以重载是因为可能有多种初始化的方式
          注意3:何时适合自己写,何时无需自己写

(2)析构函数

注意1:何时适合自己写,何时无需自己写

(3)拷贝构造函数

注意1:深拷贝,深拷贝必须自己实现,要与默认的生成的浅拷贝区分

三、总结:1.注意析构/构造何时需自己写,何时不需。2.注意拷贝构造有深浅拷贝之分。3.注意内置数据类型与自定义数据类型对三种函数的影响4.一般“内置”“动态申请需手动释放”的需要自己实现,相反则不需  

四、赋值等运算符的重载

注意1:赋值运算符重载是默认生成的,其他如大于小于则不是

注意2:临时变量(具有常性)

1. **函数或方法内部声明**:当你在函数或方法内部声明一个变量时,这个变量就是一个临时变量。它的生命周期仅限于该函数或方法的执行期间。一旦函数或方法执行完毕,这个临时变量就会被销毁。

2. **代码块内部声明**:在某些编程语言中,如C或C++,你可以在特定的代码块(如`if`语句、`for`循环或`while`循环)内部声明变量。这些变量也是临时变量,它们的生命周期仅限于该代码块的执行期间。

3. **表达式求值**:在表达式求值过程中,编译器或解释器可能会创建临时变量来存储中间结果。例如,当你执行一个复杂的算术运算或逻辑运算时,可能会产生多个临时变量来保存中间步骤的结果。

4. **函数参数值传递**:当你将一个变量作为参数传递给函数时,如果传递的是值而不是引用或指针,那么函数内部可能会创建一个临时变量来存储这个参数的值。这样,函数内部对这个参数的修改不会影响到原始变量。       

5. **返回值值传递**:当函数返回一个值时,如果返回值不是通过引用或指针返回的,那么编译器可能会创建一个临时变量来存储这个返回值,以便在函数调用点使用。

五、const成员函数

六、(const)取地址运算符重载

注意:同之前的默认成员函数一样是默认的、也不可重载成全局函数,不常用

七、Date类实现与本章知识点运用

     概述:1.分文件编写,声明定义分离 2.C++作用域的展开3.类的定义4.类中的成员函数与默认成员函数5.友元6.const修饰常变量7.const成员函数8.引用做形参9.引用返回与值返回10.运算符重载11.隐藏的this指针12.构造与拷贝构造的优化13.临时变量的产生14.static对数据在内存的存储及this的影响

   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值