C++类和对象详解(看这一篇就够了)

1.类的介绍

面向对象的核心就是对象思想(消息传递)

类的定义(类的定义过程就是类的所有成员函数实现的过程)

public:在类之外可以直接访问

private: 在类之外不可访问

protected: 保护的访问权限 交给子(派生)类访问, 暂时不学

类的声明(只要类中有一个函数没有实现那就是类的声明)

类中的函数(方法)也可以在类外实现

但是如果,第一个函数和第三个函数在类外都实现了,但是第二个没有实现,就会编译报错

类的默认构造和默认析构

当然,这里面的打印语句是我自己加的,目的为了好让大家看到调用时机

但是有时默认的构造和析构函数不一定适合我们写的程序,因此我们需要自己写适合我们当前需要的构造和析构函数

自己写构造函数和析构函数

并且没有造成内存泄漏

拷贝构造

以上就是默认的拷贝构造,但是对于需要开辟空间的实体来说,这个默认也是不适合的,会出现内存问题。

为啥会出现这种问题呢???

因为默认拷贝构造是浅拷贝,两个指向同一片地址区域,但是每一个对象都会调用一次析构函数,就会造成double free现象

所以就需要自己写拷贝构造函数了

图示:

this指针

1. 对象调用函数时,是如何找到自己本对象的数据成员的?this指针
2. 类中定义的成员函数存放在什么位置? 程序代码区
3. this指针代表的是当前对象
4. this指针在什么位置? 作为成员函数第一个隐含的参数
5. this指针的形式是什么? 类名 * const this 保护this不会被修改指向

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值