本网页所有文字内容由 imapbox邮箱云存储,邮箱网盘, iurlBox网页地址收藏管理器 下载并得到。
ImapBox 邮箱网盘 工具地址: https://www.imapbox.com/download/ImapBox.5.5.1_Build20141205_CHS_Bit32.exe
PC6下载站地址:PC6下载站分流下载
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox 网页视频 工具地址: https://www.imapbox.com/download/ImovieBox4.7.0_Build20141115_CHS.exe
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
一: 关于公有成员,私有成员,公有方法,私有方法 1): 公有成员: 就目前了解来看,在JS中形如this.XXX, 或者在defineProperties() 域中定义的成员变量,都是公有的。 2): 私有成员: 就目前了解来看,在JS中形如 this._XXX 都是私有的, 当然往往有私有成员在defineProperties()域中被转成了公有成员: 例: 3): 私有方法: 就目前了解来看, 在JS中形如 function XXX() 都是私有的, 只在本类使用。 4): 公有方法 而形如 this.XXX 或者 类.prototype.XXX() 就是公有方法。 二: 关于get, set 方法的使用 对某一成员变量来说,如果JS中有set方法, 那么需要加get,get方法。 而如果没有set并且这个成员变量可以做成公有的, 就不必加get,set了。 三: 关于构造函数中的Options 1):Options 简单的,Options域中的成员完全可以作为构造函数参数; 例: C++中可以这样处理: 2): Options 复杂的,把Options单独声明成类或者结构体,再把这个结构当做构造函数参数。 例: C++中可以做成这样:RenderStateOption 定义为一个类结构 3):构造函数中的默认参数值, 成员函数中的默认参数值,在JS中常常看到这样的情况defaultValue(XXX, XXX), 或者在JS的注释中标明了defaultvalue, 这两种情况都要在构造函数中,或者成员函数中,增加默认值。 四: 关于JS中代表多种类型TypeArray,Value: 在JS中是弱类型的, 一个Value可以表述为int, float, double等。一个TypeArray也可能代表不同类型, 这种情况分两种情况处理。 1):用模板处理,例:buffer.js 中arrayView 可以是不同类型 在C++中用模板处理: 2): 用面向对象的继承处理,基类指针指向子类实例: 例:ShaderProgram.js 中Uniform 在C++中这样处理的: 五: 关于JS中函数指针 JS中经常会定义函数指针,或者会类附加一个函数,这个分两种情况对待: 1):函数指针仅在类内部使用,且没有被存储(存储看RenderState的情况),而是在后面函数中马上会被用到,这种情况在C++中没有必要做成函数指针。 例:在VertexArray.js中,在addAttribute函数中为attr对象增加一个函数指针,而这个函数指针在后面bind调用。 在C++中这样处理的: 2): 函数指针被保存,供后续回调使用时, 这种情况C++须按函数指针处理。 例:JS中AutomaticUniform中的getValue要在ShaderProgram中回调 那么在C++中就要做成函数指针,然后做好后续回调工作。 六: 关于JS中的继承和多态 JS中继承关系是不明显的, 而C++采用继承和多态会显著提高编码效率,重用率,一个良好的类框架设计,有助于后续版本维护升级。 例:JS中Texture,CubeMapFrace, CubeMap 就有明显的继承关系。 对于功能相同的代码可以在子类的复用或重载。 七: 关于JS中的destroy, isDestroyed 就目前理解来看,这两个方法,是JS释放对象的, 如果一个对象释放了isDestroyed就会返回true。 C++由可以实现destroy方法,但已经有析构函数,并且析构函数会自动调用基类的析构函数。 如果再做一个Destroy方法就是好像画蛇添足。 并且destroy方法, isDestroyed方法都需要实现,如果有继承关系的情况,还需要考虑子类需要重载destroy方法。 八: 关于C++中指针使用(指向类或结构的指针) 第一种情况:在类内声明指针,一个成员变量是否声明为指针,只有一条原则:“类是否负责创建和销毁该成员变量”。 1): 该类负责该成员的生命周期, 那么这个成员变量可以声明成非指针,也可以声明成指针。 2):该类不负责成员的创建和释放,这种情况还是把成员声明成指针比较好。 第二种情况: 在函数内使用指针, 局部变量的创建不建议使用指针,尽量在栈上创建的形式, 或使用引用。 第三种情况: 在容器中使用,建议在容器中存放指针(简单类型或结构除外),而不是对象本身; 理由1:首先这种容器包括容器里的对象指针,声明周期都有具体的类负责, 理由2:避免了容器拷贝时,容器里面对象的拷贝操作; 理由3:容器往往动态增长,避免占用较大内存。 九: 关于重载操作符 在Core有大量的工具类,比如向量操作,矩阵操作等,这些工具类使用频繁,如果重载了操作符:
阅读和此文章类似的: 程序员专区