C++入门02-创新互联
[本节目标]
成都创新互联从2013年创立,先为肃州等服务建站,肃州等地企业,进行企业商务咨询服务。为肃州企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。- 面向对象和面向对象初步认识
- 类的引入
- 类的定义
- 类的作用域
- 类的实例化
- 类的访问限定符及封装
- 类的对象大小的计算
- 类成员函数的this指针
C语言是面向过程的, 关注的过程, 分析出求解问题的步骤, 通过函数调用逐步解决问题.
C++是基于面向对象的,关注的是对象, 将一件事情拆分成不同的对象, 靠对象之间的交互完成.
2. 类的引入C语言中, 结构体中只能定义变量, 在C++中, 结构体内不仅可以定义变量, 也可以定义函数.
3. 类的定义Class为定义类的关键字, ClassName为类的名字(PersonInfo), {}中为类的主体, 注意类定义结束时后面是分号 . 和C语言相比, 结构类似, 关键字不同.
类中的元素称为类的成员: 类中的数据称为类的属性或者成员变量如上图(_name, _gender, _age),;类中的函数称为类的方法或者成员函数如上图(SetStudentInfo(). PrintStudentInfo() ).
类的两种定义方式:
- 声明和定义全部放在类体中
- 声明放在.h文件中, 类的定义放在.cpp文件中,更推荐使用这种方法
图1 在类中定义了一个ShowInfo函数信息
图2 对类进行了实例化, 创建了PI这个类的实例, 然后调用了ShowInfo函数
图3 是进行反汇编代码, 可以看到在代码中 ShowInfo函数全部被展开, 该函数并没有到栈中调用(即没有出现call ShowInfo这行指令)
由此可见ShowInfo函数被当成内联函数展开了. 其实所有在类中定义的函数都会被当成内联函数, 但具体展开与否是由编译器自己决定的, 相对复杂的函数可能就不会被展开(这样节省资源), 简单的函数就展开(这样提升效率) !
4. 类的访问限定符及封装封装是什么?
1. 将数据和操作数据的方法进行有机结合, 隐藏对象的属性和实现细节, 仅对外公开接口来和对象进行交互.
2. 封装本质上是一种管理, 将类的数据和方法都封装到一起, 使用protected/private把成员封装到一起, 开放一些共有的成员函数用来对成员合理的访问. 所以封装本质是一种管理.
C++实现封装的方式: 用类将对象的属性与方法结合在一块, 让对象更加完善, 通过访问权限选择性的将其接口提供给外部的用户使用
类的作用域
类定义了一个新的作用域, 类的所有成员都在类的作用域中. 在类体外定义成员, 需要使用::作用域解析符指明成员属于哪个类域.
类的实例化
用类创建对象的过程, 称为类的实例化
可以看到, 当成员变量为公有属性时, 在类的外部进行成员访问时, 编译器推荐有4个选项_____________________________________________________________________
再次观察, 将类中的成员变量用private修饰之后, 再次进行成员访问时, 编译器只允许调用公共区的ShowInfo()函数了.
注意: 访问限定符只在编译的时候有效, 当数据映射到内存后, 没有任何区别.
总结:访问限定符:
Pubulic(公有) | protected(保护) | private(私有);
Public: 可以在类外直接被访问;
Protec , private: 在类外无法直接被访问;
Class的默认访问权限为private, 可以在类内使用public更改访问权限;
访问限定符的作用域从当前限定符开始, 知道下一个访问限定符出现位置结束
Struct的默认访问权限为public
问题: C++中struct和class的区别是什么?
答: 1 . struct 是沿用兼容C语言的语法, C++可以在struct中定义成员函数
2 .C++一般使用class, 默认访问权限是private , struct是public
未完待续...
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章名称:C++入门02-创新互联
当前链接:http://pwwzsj.com/article/cdidod.html