成员变量

读书笔记《深度探索c++对象模型》(3) - 类成员变量的数据语意

半世苍凉 提交于 2019-12-01 04:28:29
一、类数据成员绑定   1.一个空类的大小不会为空,一般为一个char,即1个字节大小,其为了区分不同两个空类对象,需要一个地址来表示。   2.一个类的sizeof的大小,由多个方面影响:     1)语言本身的负担(如虚指针)     2)不同编译器对特殊情况的优化处理(如继承于一个空类的类,编译器可能做优化)     3)alignment对齐方式的限制(因为对齐的原因,成员变量的顺序有时也会对sizeof大小影响)。   3.由typedef重声明的类型在类外前面和类中均有时,则编译器可能会按照第一次被决议的那个typedef使用,因此此处存在一个缺陷,即在未发现到类中的typedef时,均使用外层的,导致类型不是预期的类中的那个类型,故而一般情况下,类中的typedef应该放在类中的起始位置处最为安全,而不是声明成员变量处;以此来解决数据成员类型绑定的问题。 二、类数据成员布局   1.非静态的数据成员在类对象中的排列顺序与其声明顺序一致,虽然中间可能会插入一些对齐需要的字节,另外一个控制访问段(public,private,protected)中的数据成员顺序一致,但不同的控制访问段的数据成员间的顺序不一定与类中声明的顺序一致。   2.类中若是有vptr,则vptr的位置可能位于类对象中的前端也可能在最后段,甚至也有可能在数据成员的中间。不过一般为最前或最后。   3

Java核心技术第六章--内部类

霸气de小男生 提交于 2019-12-01 02:43:51
一、什么是内部类? 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。 内部类的分类 1、成员内部类 2、局部内部类 3、静态内部类 4、匿名内部类 二、内部类的共性 1、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 。 2、内部类不能用普通的方式访问。 3、内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态成员变量 。 4、外部类不能直接访问内部类的的成员,但可以通过内部类对象来访问 为什么需要内部类 其主要原因有以下几点:   1、内部类方法可以访问该类定义所在的作用域的数据,包括私有的数据   2、内部类可以对同一个包中的其他类隐藏起来,一般的非内部类,是不允许有 private 与protected权限的,但内部类可以   3、可以实现多重继承   4、当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷 使用内部类最吸引人的原因是:   每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。大家都知道Java只能继承一个类

第七章 面向对象

早过忘川 提交于 2019-12-01 01:44:40
第七章 面向对象 7.1.1 基本概念 类 : 具有相同方法和属性的一类事物 对象、实例 : 一个拥有具体属性值和动作的具体个体,是类的一个实例 实例化 :从一个类得到一个具体对象的过程 7.1.2 基本格式 # 定义类 class 类名: #类名 第一个是大写字母 def 方法名(self,name): #必须由self print(name) return 123 def 方法名(self,name): print(name) return 123 def 方法名(self,name): print(name) return 123 # 调用类中的方法 # 1.创建该类的对象 obj = 类名() # 2.通过对象调用方法 result = obj.方法名('alex') print(result) 7.1.3 应用场景 应用场景:遇到很多函数,需要给函数进行归类和划分 三个词:类、对象、方法 补充: 类和对象是什么关系? 对象是类的一个实例 self是什么?(obj.方法时会把obj传给self) self就是一个形式参数,对象调用方法时,python内部会将该对象传给这个参数 类内部代码会从上到下依次执行,类变量立即执行,方法需调用内部代码才会执行 类与类之间可以嵌套,执行遵循上条 类/方法/对象 都可以当做变量嵌套到其他类型中 什么时候用面向对象? 函数(业务功能)比较多

实例成员与指令

强颜欢笑 提交于 2019-11-30 23:36:30
一、实例成员 - 挂载点 vue如何与html页面结构建立关联:挂载点 注意点: 挂载点只遍历第一个匹配的结果 html与body标签不可以作为挂载点 挂载点的只一般就采用id选择器(唯一性) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>挂载点</title> </head> <body> {{ }} <div class="main"> {{ }} </div> <hr> <div class="main"> {{ }} </div> </body> <script src="js/vue.js"></script> <script> new Vue({ el:'.main' }) </script> </html> 挂载点 js对象(字典)补充 let b = 20; let dic = { a: 10, // 字典本身就是对象,key都是字符串形式可以省略引号 b // 值为变量时,且与key同名,可以简写 }; console.log(dic) 二、实例成员 - 数据 1) 用实例成员data为vue环境提供数据,数据采用字典{}形式 2) 在插值表达式{{}}中,直接书写数据的key来访问数据 3) 在外部通过接受实例的变量app,访问实例成员(实例成员都用$开头)

成员变量和局部变量的区别

。_饼干妹妹 提交于 2019-11-30 23:30:49
在类中的位置不同 重点 成员变量:类中,方法外 局部变量:方法中或者方法声明上(形式参数) 作用范围不一样 重点 成员变量:类中 局部变量:方法中 初始化值的不同 重点 成员变量:有默认值 局部变量:没有默认值。必须先定义,赋值,最后使用 在内存中的位置不同 了解 成员变量:堆内存 局部变量:栈内存 生命周期不同 了解 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 来源: https://www.cnblogs.com/smiledGo/p/11644677.html

子类继承简单总结

血红的双手。 提交于 2019-11-30 23:16:08
子类继承 (1)子类和父类如果在同一个包内,则子类可以继承父类的除private以外的所有成员变量和方法,并且权限不变; (2)子类和父类如果不在同一个包内,则子类可以继承父类的public和protected权限的成员变量和方法,不能继承友好型和private; 继承的优点 1.提高代码的重用性,子类继承了父类的所有的方法和属性,所以子类不用再重复定义 2.提高代码的可扩展性,子类可以写自己独特的属性和方法,在父类的基础上扩展 继承中的构造方法 1、super表示父类构造函数的对象 2、要想调用父类中构造函数,一定发生了继承 3、要想调用父类里面的构造函数,那么你的super一定在你的子类的构造函数中并且在第一句。 父类的构造函数是不能够被继承,但是可以被子类默认去进行调用 不能够被子类继承的三种形式: 1、父类用私有属性进行修饰不可以被继承 2、子类与父类不在同包,使用默认访问权限的成员不可以被继承 3、父类的构造函数不是被继承,而是默认进行调用 来源: https://www.cnblogs.com/massage/p/11644286.html

五十三、初识vue,实例成员语法,指令,

旧街凉风 提交于 2019-11-30 22:45:01
vue 1.什么是vue? 可以独立完成前后端分离式web项目的JavaScript框架 2.为什么要学习vue? 三大主流框架:Angular(脸书)、React(git公司)、vue(中国人第三方) 先进的前端设计模式:MVVM 可以完全脱离服务器,以前端代码复用渲染整个页面:组件化开发 vue框架 vue是前端框架:Angular(脸书)、React(git公司)、vue(中国人第三方) vue:结合其他框架优点,轻量级,中文API,数据驱动,双向绑定,MVVM设计模式、组件化开发、单页面应用vue环境:本地导入与cdn导入(都在代码最下面) <!--<script src="js/vue.js"> 本地导入--> <script src="https://cn.vuejs.org/js/vue.min.js"> cdn导入 vue是js渐进式框架 根据开发需求,可以决定vue框架控制项目具体位置,可以为一个标签,也可以为一个页面,甚至整个项目实例成员-挂载点 el:    vue如何与html页面结构建立关联:挂载点  1.挂载点通常只能找到一个,所以一般会设置id  2.一个vue对象挂载点只能匹配到一个结果,一般会把挂载点用id标识  3.html与body不能作为挂载点   <script> // 这里是字典对象 vue就是实例 new Vue({ el:'.main

vue基础一:

百般思念 提交于 2019-11-30 22:24:56
路飞项目:1,vue知识 1,vue导读: 2,vue基础知识: 3,实例成员-数据(data) 4,实例成员—过滤器 filters, 指令相关: 5,文本指令 6.事件指令: 7,属性指令 8.动态修改文本样式案列 9,表单指令(数据的双向指定) 1,vue框架 前台html+css+js框架。是不同于js与 jq的数据驱动框架 指令| 实例成员| vue项目2,drf框架 Django的插件,完成前后端分离项目后台接口编写的框架 序列化组件 | 三大认证组件| 分页,筛选,过滤,排序| 请求,解析,响应3,路飞项目 前端有vue完成,后台你有drf完成前后端分离项目 Git| 短信认证 | celery异步任务 1,vue导读: vue是什么: vue是前台框架,其中前端框架还有:Angular、React、Vue # vue是js渐进式框架 # 根据开发需求,可以决定vue框架控制项目的具体方位:可以为一个标签,也可以为一个页面,甚至可以为整个项目 vue的优点: 是结合了其他两个框架的优点,轻量级的,中文版本,数据驱动,双向绑定,MVVM设计模式、组件化开发、单页面应用 vue的使用: vue环境:本地导入与cdn导入 1,本地导入(下载vue) <script src="js/vue.js"></script> 2,cdn导入 <script src="https:/

vue框架 day1

删除回忆录丶 提交于 2019-11-30 19:55:46
1.vue框架介绍 2.vue导读 3.挂载点 4.数据 5.过滤器 6.文本指令 7.事件指令 8.属性指令 9.交互修改脚本与样式 10.表单指令 一.vue框架介绍 1.vue框架 前台heml+css+js加框架,是不同于js与jq的数据驱动框架 指令 | 实例成员 | vue项目 2.drf框架 django的插件,完成前后台分离项目后台接口编写的框架 序列化组件 | 三大认证组件 | 分页,筛选,过滤,排序 | 请求,解析 ,响应 3.路飞项目 前台有vue完成,后台由drf完成的前后台分离项目 git | 短信认证 | celery异步任务 | 项目上线 二.vue导读 什么是vue框架: vue是前台框架:Angular,React,Vue vue:结合其他框架的优点,轻量级,中文API,数据驱动,双向绑定,MVVM设计模式,组件化开发,单页面应用 vue环境有俩种导入方式: 1.本地导入(下载vue) <script src="vue/vue.js"></script> 2.cdn导入,只有联网了才能用 <script src="https://cn.vuejs.js"></script> ps: vue是js渐进式框架 根据开发需求,可以决定vue框架控制项目的具体方位:可以为一个标签,也可以为一个页面,甚至可以为整个项目 接下来正式进入vue的学习: 三

整理

牧云@^-^@ 提交于 2019-11-30 19:52:48
C++11 知识整理 对class的理解 答:首先,class 也是一种数据类型,只不过是可以由开发者自由定义的一种数据类型;可以用来封装成员变量和成员函数;支持抽象,继承,多态性;在定义数据类型的时候,private,public,也从一定程度上保证了数据的安全性 抽象性:含有纯虚函数的类被称为抽象类,用途是为派生类提供基类 多态性:对于不同对象接受相同信息时产生不同的动作。分为静态多态和动态多态,体现在两个方面,一是在编译的时候,函数重载是一个方面;二是在运行的时候,虚函数是一个方面 继承性:子类具有父类的各种属性和方法,而不必再次编写相同的代码 什么是类 答:一种将抽象转换成用于定义的类型的工具,将数据表示方法和操纵这些数据的方法组合一起整合成一个包 如何将私有成员变量取出 答:方法1:通过public中的函数,传出参数将私有成员变量取出。方法2:友元函数 *this 指针 答:经典回答,进入一个房间,能看见房间里的东西,但是整个房间看不到了,然后this指针就是时刻盯着这整个房间。this指针是类的一个自动生成,自动隐藏的私有成员。存在于类的非静态成员函数中,指向内调用函数所在的对象。全局仅有一个this指针,当一个对象被创建的时候,this指针就存放指向对象数据的首地址 类和对象的区别和联系 答:区别:(1).定义不同 ,类是现实世界或思维世界的实体在计算机的反映