类和对象(上篇)

您所在的位置:网站首页 view类的作用 类和对象(上篇)

类和对象(上篇)

2023-05-20 16:58| 来源: 网络整理| 查看: 265

目录

类的引入

类的成员

类的定义

访问限定符

类作用域

类实例化

类对象大小

this指针

C语言是面向过程的,关注过程,把问题分为几个步骤

C++是面向对象的,通过对象之间相互作用来解决问题

类的引入

C语言中用struct来定义结构体,C++中也可以用struct来定义结构体

C语言结构体中不可以定义函数,C++结构体可以定义函数

C++中一般用class来定义结构体,用法类似struct

类的成员

类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数

类的定义

1、定义跟声明定义在类中(函数在类中编译器可能使其变成内联函数)

 2、声明放在.h项目中,定义放在.cpp中

                一般使用第二种

类的成员变量中,成员变量容易与形参搞混,所以要加符号来区别,成员变量前面加  _  与函数形参区别

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

访问限定符

public在类外可以直接访问

protect、private在类外不能直接访问

访问限定符作用域在类中从出现到下一个访问限定符出现

struct默认是public,class默认是private,一般在类中需要写出访问限定符,不要使用默认值

类作用域

用 :: 来指明成员的类作用域

类实例化

类相当于是一个图纸,实例化后变成房子

定义出的类并没有分配实际空间来存储

实例化后的对象有实际的物理空间,存储成员

类对象大小

1、只保存成员变量大小,没有成员函数大小(成员函数储存在公共代码段)

2、对齐规则与结构体相同

结构体对齐规则

1. 第一个成员在与结构体偏移量为 0 的地址处。 2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。 注意:对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。 VS 中默认的对齐数为 8 3. 结构体总大小为:最大对齐数(所有变量类型最大者与默认对齐参数取最小)的整数倍。 4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是 所有最大对齐数(含嵌套结构体的对齐数)的整数倍。

this指针

1、this指针类型:类类型* const,所以this不能被修改

2、this是成员函数形参,只能在成员函数中使用

3、this指针不能在形参和实参部分显示,可以在成员函数内部显示使用

4、this指针是在成员函数调用时,把实参地址传递给this,所以this不存储在对象中,而是像形参一样存储在栈中

5、this作为第一个参数隐藏形参,由exe寄存器自动传,不需要手动传参

注意:当函数调用时没有传参,这时this指针为空,如果如下图程序一样使用_a(本质是this->_a)就会导致程序崩溃

 

     

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3