c++基础(类与对象上)

目录

一.类的定义

1.1类的格式

1.2 访问限定符

1.3类域

2. 实例化

2.1  对象大小

3. this指针


一.类的定义

1.1类的格式

1. class为定义类的关键字,类体中内容称为类的成员:类中的变量 称为类的属性 或 成员变量;

类中的函数 称为类的方法 或者 成员函数


2. 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前面或者后面加 _ 或者 m开头,比如:

3.C++中struct也可以定义类(C++兼容C中struct的用法)⼀般情况下还是推荐用class定义类。

(因为struct默认类里面全是public(也就是成员函数全部公开)而class则全是private(全部成员函数 不公开))( 1.2的第三点:有详细说明)

4. 定义在类面的成员函数默认为inline。


1.2 访问限定符

1. C++⼀种实现封装的方式,用类将对象的属性与方法结合在⼀块,让对象更加完善,通过访问权限选择性的将其接提供给外部的用户使用。

2. public修饰的成员在类外可以直接被访问protected和private修饰的成员在类外不能直接被访
问。
现在protected和private是⼀样的(我还没学到)。

3. class定义成员没有被访问限定符修饰时默认为private(私有)struct默认为public(公开)
4. ⼀般成员变量都会被限制为private/protected,需要给别人使用的成员函数会放为public


1.3类域

1. 类定义了⼀个新的作用域,类的所有成员都在类的作用域中,在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。

2. 声明和定义分离,需要指定类域

比如:在test.h头文件声明

test. c 中定义,需要加上test::Print


2. 实例化

1. 类是对象进行⼀种抽象描述,是⼀个模型⼀样的东西,限定了类有哪些成员变量,这些成员变量只是声明,没有分配空间, 用类实例化出对象时,才会分配空间!!!

(也就是说有才会分配空间)

2.1  对象大小

1. 实例化对象后,才可以得到class的大小。

2. C++规定类实例化的对象也要符合内存对齐的规则。(也就是结构体内存对齐,我就不多说了)相对简单的 自定义类型:结构体-CSDN博客

为什么test2没有成员变量还要给1个字节呢?因为如果⼀个字节都不给,怎么表示对象存在过呢!所以这里给1字节,纯粹是为了占位标识对象存在。
 


3. this指针

1.类的成员函数中访问成员变量,本质都是通过this指针访问的,如Init函数中给_year赋值, this-
>_year = year;
2.C++规定 不能在实参和形参的位置显示的写this指针 ( 因为编译时编译器会自己处理 ),但是可以在函数体内显示使用this指针。

3.编译器编译后,类的成员函数默认都会在形参第⼀个位置,增加⼀个当前类类型的指针,叫做this指针。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值