类和对象(上篇) |
您所在的位置:网站首页 › view类的作用 › 类和对象(上篇) |
目录 类的引入 类的成员 类的定义 访问限定符 类作用域 类实例化 类对象大小 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 |