C++类和对象(1)

本文介绍了C++中类的概念,包括类的定义、访问限定符、作用域、实例化以及对象大小的计算。重点讲解了类的封装、继承和多态特性,以及隐含的this指针在函数调用中的作用。
摘要由CSDN通过智能技术生成

序:c语言是面向过程的编程语言,而c++是面向对象的语言,主要关注于对象。

1:类

ps:简单来说,可以将类理解为c语言中的结构体的优化,c++中也可以实现结构体。二者的区别主要有:结构体中不可以定义函数,而类中可以。

(1)类的定义

  class  name

{

成员函数以及对象;

};

(2)类的访问限定符

访问限定符分别为:public  ,private  ,protect.

public:可以从类的外部进行调用。

private:不可以直接在类的外部进行调用,但可以直接类的作用域中进行使用。

protect:   作用与private基本类似。

使用规则:

访问限定符作用域从该访问限定符出现的位置到下一个访问限定符出现的位置为止,如果后面没有,即到‘}’为止,即类结束。

Ps:类的默认访问权限为private,结构体的默认访问权限为public。

(3)类的作用域

面向对象的三大特性:封装,继承,多态。

类域的意义:将一些函数以及对象进行封装和管理。

在C++中也可以对于类中的成员函数进行声明和定义的分离。如下:

         

(4)类的实例化

以栈为例,当在局部域中定义了一个栈之后,类中的成员变量就以及被实例化。

简单而言,就是将类在main函数中进行声明时,其类中的成员变量就已经被实例化。

(5)计算类的对象大小

计算类的对象大小(同c语言一样,适用内存对齐原则)。

Ps:在计算类的对象大小时,只计算类的成员变量,不计算类的成员函数。

空类以及只含有成员函数的类的大小都为1,不是0.

2:隐含的this指针

 既然类调用的都是同一个函数,为什么函数可以对于不同的传参进行不同的处理,原因是在传参的过程中,编译器默认地把对象的地址也传过去了,作为this指针。

如下:

Ps:this指针是隐式类型的,不可以在实参或者形参中显示写出。

this指针一般存储在栈上,或是寄存器ecx上。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值