C++基础学习之四————类和对象(上篇)

本文深入探讨了面向对象编程中的关键概念,包括面向过程与面向对象的区别、类的关键字(class与struct)、访问限定符(public、private、protected)、构造函数的作用及调用时机、析构函数的功能以及如何处理对象清理。此外,还详细阐述了拷贝构造函数的概念及其在浅拷贝中的应用,强调了在对象赋值和内存管理中的重要性。
摘要由CSDN通过智能技术生成

先来看看面向对象和面向过程的区别

1.打个比方有个外卖系统这个系统是一个结构

面向过程的内容是:顾客下单,商家接单,骑手接单,送单,顾客点评

面向对象的内容是:商家的操作,骑手的操作,顾客的操作

通过3个不同对象的交互关系 来达到外卖系统的功能

1.类的关键字:

class , struct,这是类的俩个关键字,

区别:

class 默认成员变量和函数是私有的,struct 默认是共有的因为要兼容c的语法;

2.访问限定符:

public:

private:

protected:

只有public内的成员才是在类外面可以被访问的,将对象和方法封装到一起就实现了封装,就限定了接口,比如栈:在c语言中可以这样访问:x.a.top由于底层逻辑不同就可能导致错误

3.在类里面定义函数编译器会将其当成内敛函数,所以一般情况下,最好将定义和声明分开写,

在一般情况下写在类里面写定义长度比较短的函数。

4.隐藏的this指针,为什么会有隐藏的this指针呢?因为在类的定义中,创建一个类的变量

只有成员变量会占有空间,成员函数不占用空间,且满足内存对齐规则,如果只有函数或者什么都没有,那么会占用一个字节,来标记该变量存在。函数被放在代码区,this指针会在调用函数时自动传递过去的,不能在形参和实参中显示写出,这个工作是由编译器自己做的。

 

5.构造函数,负责:类对象成员的初始化工作,没有返回值,可以带参数,函数名就是类名,一般是全缺省参数或者不写参数

传参是要在变量后面传; 

对于内置类型,默认的生成的构造函数不会处理,对于自定义类型默认的构造函数会处理,

什么是默认是构造函数?

有3类:

(1)自己写的全缺省参数的构造函数;

(2)自己不写编译器默认生成的;

(3)自己写的不带参数的构造函数

不传递参数的时候编译器会自动调用其中的一种经行对变量初始化.

6.析构函数:
特点没有参数没有返回值,在类名前面加上~

负责对象的清理:malloc,new,realloc等,空间的释放,在变量声明周期结束时自动调用。对内类类型不做处理。

7.拷贝构造函数:没有返回值,参数只有一个类型必须是引用:传值调用会引发无限递归

这是浅拷贝。 

使用方式:

 自定义类型对象之间互相赋值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值