c++学习笔记二(类和对象)

本文详细介绍了C++中struct和class的区别,重点关注了析构函数及其调用顺序。讨论了对象在栈上和堆上的创建方式,以及构造函数在对象初始化中的作用。此外,还探讨了引用的重要特征,强调了引用必须初始化并作为别名使用。文章通过示例代码展示了如何初始化成员变量,返回类中成员变量的引用,以及拷贝构造函数的浅拷贝与深拷贝概念。
摘要由CSDN通过智能技术生成

在这里插入图片描述

在这里插入图片描述
注意:
成员变量一般是私有的,只能通过成员函数访问;
成员函数一般是公有的,可以提供给对象对外调用。

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

struct和class的区别(两个方面)

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
引申:栈上创建和堆上创建
在C++中类的对象建立分为两种,一种是静态建立,如A a
另一种是动态建立,如A* p=new A(),Ap=(A)malloc();
静态建立类对象,是由编译器为对象在栈空间中分配内存,通过直接移动栈顶指针挪出适当的空间,然后 在这片内存空间上调用构造函数形成一个栈对象。
动态建立类对象,是使用new运算符将对象建立在堆空间中,在栈中只保留了指向该对象的指针。
是由编译器自动分配释放 ,存放函数的参数值,局部变量的值,对象的引用地址等。其操作方式类似于数据结构中的栈,通常都是被调用时处于存储空间中,调用完毕立即释放。
中通常保存程序运行时动态创建的对象,C++堆中存放的对象需要由程序员分配释放,它存在程序运行的整个生命期,直到程序结束由OS释放。

在这里插入图片描述
总的来说,this类似于数组名,本身不占内存空间。
例子:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值