3-20(类与对象)
1、类
定义:class为类的关键字, classname为类名,{}中为类的主体,注意类定义结束时后面分号;。
class classname
{
};
类的访问限定符及封装
访问限定符:public(公有),private(私有的),protected(保护)
解释:
public修饰的成员在类外可以直接访问。
protected和private修饰的成员在类外不能直接访问。
访问权限作用域从该访问权限修饰符出现的位置开始到下一个访问限定符出现时为止。
class默认为private,struct默认为public(因为struct需要兼容c)
面试题:
c++中struct和class的区别
c++需要兼容c语言,所以c++中struct可以当作结构体去使用,,另外c++中还可以定义类。和class定义类一样,区别是struct的成员默认访问方式为public,class成员默认方式为private;
类的作用域:
类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员,需要使用::作用域解释符指明成员属于那个类域。
就是在类外,如果想要定义其类成员,就必须使用"::"作用域解释符来解释其属于什么类域。
类的实例化:
用类类型创建对象的过程,称为类的实例化。
注意:类只是一个模型一样的东西,定义一个类并没有分配实际的内存空间来存储它。
所以需要实例化来开辟空间;一个类可以实例化多个对象,实例化出的对象,占用实际的物理空间,存储类成员变量。
总结:就是类定义没有空间,只有实例化之后才会有空间。
计算类对象大小:
只需计算类成员变量大小即可,类成员函数不算大小;但是当类中无成员变量时,其大小为1。1不是存储成员函数,而是占位,表示类的存在。
this指针:
c++通过引入this指针来解决类中函数体不同对象的区分,c++编译器隐藏了一个this指针,让该指针指向当前对象(函数运行时调用该函数的对象)
特性:
类型为*const;
只能在成员函数内部使用(局部变量),所以在栈中存储。
this指针本质是成员函数的形参,,当对象调用其成员函数时,将对象地址作为实参传递给this形参,
所以对象中不存储this指针。
this指针时成员函数第一个隐含的指针形参,一般由编译器自动传递,不需要用户传递。
- 20-03-其他对象API(Math类)
- 【学习笔记20】java面向对象-权限修饰符、模板模式
- C++必知必会之(20)STL函数对象
- java学习日记_20:面向对象之this关键词的概述和。07.08
- 20、ES6 属性的遍历 一共有 5 种方法可以遍历对象的属性
- 关于 JavaScript 中一个小细节问题 (在控制台中直接 {Name:'王尼玛',Age:20} 对象报错问题)
- 20.购物车商品价格的总和(里面有一些功能没有实现,创建textview布局对象,然后for()遍历数据求和)
- 20. 不可修改的对象
- (20)面向对象-5.处理对象
- 20-06-其他对象API(Date类-字符串转成日期对象)
- java基础教程:常用对象之Object(20)
- ArcGIS API for JavaScript 4.2学习笔记[20] 使用缓冲区结合Query对象进行地震点查询【重温异步操作思想】
- class对象 java中的反射(J2SE入门20)
- 20-05-其他对象API(Date类-日期对象转成字符串)
- 【JavaWeb-20】3种对象状态以及相互转化、一级缓存和快照、Session其他API、一对多配置和操作、cascade
- JAVA基础--db20_java转换流_file对象&GUI
- 条款20:在传递对象的时候尽量用reference-to-constent来代替,pass-by-value
- 20-07-其他对象API(Date类-练习)
- 20、java把实体对象写入文件
- [导入]C#面向对象设计模式纵横谈(20):(行为型模式) Chain Of Responsibility 职责链模式.zip(8.18 MB)