2.类与对象(上)

1.类的定义

1.1 类定义格式

1.1.1class 为定义类的关键字,后接类的名字;类中的变量称为类的属性/成员变量;类中的函数称为类的方法/函数。(C++中struct升级为类,即struct中也可定义函数,这是类与struct的最大区别

~*定义在类中的成员函数默认为inline*

~不需要像C中再typedef struct Node ....Node了,可以直接用Node

1.2 访问限定符

1.2.1class中  public: 修饰成员在类外可直接被访问

                 private: / protected: 修饰成员在类外不可直接被访问

*class定义成员没有被访问限定符修饰时默认为private,struct中默认为public

~且不需要typedef ListNodeCPP.....就可以直接表示类型,这里与struct不同

~用类将对象的属性和方法结合在一块,实现了一种封装(这是C++相较C的严谨性,其实也更方便调用了)通过 访问限定符 将其接口提供给外部用户使用(严谨性)

~在 C 中像取栈顶可以不调用他人写的函数,通过自己的代码访问(十分容易出错) 而C++中因为成员变量是私有的,仅能通过访问限定符,调用相应函数才完成像取栈顶这样的操作,杜绝了不规范操作带来的麻烦。

1.3 类域

~类定义了一个全新的作用域,在类外定义函数成员时(声明和定义分离),需要用 :: 作用域操作符 指明成员属于哪个类域

~编译器查找规则,先在全局中找,后再类域中找 (指定类域的情况)

2.实例化

2.1 对象大小:其中函数并不计入大小,其他成员变量符合内存对齐规则(没有成员变量的类大小为1,纯粹为了站位表示对象存在)

3.this指针(隐式传地址,方便)

3.1 编译器编译后类的成员函数默认会在形参的第一个位置,增加一个当前位置类类型的指针,即this指针。(类的成员函数访问成员变量,本质都是通过this指针访问的,如Init中的_year赋值:this->_year = year)

3.2 C++规定不能在形参和实参位置显示this指针,但是可以在函数体内显示使用this指针

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值