C++(除了成员变量之外)还有另一种实现has-a关系的途径——私有继承.使用私有继承,基类的公有成员和保护成员都将成为派生类的私有成员.(如果使用保护继承,基类的公有成员和保护成员都将称为派生类的保护成员.)这意味着基类方法将不会称为派生类对象共有接口的一部分,但可以在派生类的成员函数中使用它们.14.2.1 Student类示例(新版本)Student类应从两个类派生而来,因此声明将列出这两个类:class Student : private std::string, private std…
js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a"; //原型中是否有key对应的属性 function hasPrototypeProperty(obj,key){ return !obj.hasOwnProperty(key) && key in obj; } 原型对象 构造函数 每一个对象的实例都有一个原型属性,该属性指向了…
三大继承原则(由我杜撰) 基类的私有成员被继承后不可见(优先级最高) 公有继承不改变基类成员属性 保护继承(私有继承)把基类成员变为保护成员(私有成员)…
阮一峰这篇文章写的很好 http://www.ruanyifeng.com/blog/2011/06/designing_ideas_of_inheritance_mechanism_in_javascript.html 笔记如下: 一直很难理解Javascript语言的继承机制. 它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(p…
14.4.1 定义类模板下面以第10章的Stack类为基础来建立模板.原来的类声明如下:typedef unsigned long Item; class Stack{private:    enum {MAX = 10};    // constant specific to class    Item items[MAX];    // holds stack items    int top;            // index for top stack itempublic:   …
目录 一.概览 二.数据类型 1. JavaScript中的数据类型 2. 什么是基本类型(Primitive Data Type) 2.1 概念 2.2 七个基本类型 2.3 基本类型封装对象 3. 什么是对象类型(Object) 3.1 四类特殊对象 3.2 对象是属性的集合 3.3 对象的创建 3.4 对象的访问 3.5 引用类型 3.6 和Lua中Table的比较 三.面向对象 1. 意义 2. 原型与继承 3. 自定义对象 如何创建类似对象 构造器和new 构造器的prototype属…
JavaScript作为一个面向对象语言(JS是基于对象的),可以实现继承是必不可少的,但是由于本身并没有类的概念,所以不会像真正的面向对象编程语言通过类实现继承,但可以通过其他方法实现继承.(javascript中的继承是通过原型链来体现的http://www.cnblogs.com/amumustyle/p/5435653.html)实现继承的方法很多,下面就只是其中的几种. 一.原型链继承 function Person() { //被继承的函数叫做超类型(父类,基类) this.name…
15.1.1 友元类假定需要编写一个模拟电视机和遥控器的简单程序.决定定义一个Tv类和一个Remote类,来分别表示电视机和遥控器.遥控器和电视机之间既不是is-a关系也不是has-a关系.事实上,遥控器可以改变电视机的状态,这表明应将Remote类作为Tv类的一个友元.首先定义Tv类:友元声明可以位于共有.私有或保护部分,其所在的位置无关紧要.由于Remote类提到了Tv类,所以编译器必须了解Tv类后,才能处理Remote类,为此,最简单的方法是首先定义Tv类.也可以使用前向声明(forwar…
第三章.基本数据类型 整形 short:至少16位 int:至少与short一样长 long:至少32位,且至少与int一样长 long long:至少64位,且至少与long一样长 字符类型 char:8位 char16_t:16位无符号 char32_t:32位无符号 布尔类型 bool 浮点类型 float:至少32位 double:至少48位,且不少于float long double:至少和double一样多 第四章.复合数据类型 数组 字符串 结构体 共用体 枚举 指针 第五章.循环…
STL是一种泛型编程(generic programming).面向对象编程关注的是编成的数据方面,而泛型编程关注的是算法.它们之间的共同点是抽象和创建可重用代码,单他们的理念决然不同.泛型编程旨在编写独立于数据类型的代码. 16.4.1 为何使用迭代器理解迭代器是理解STL的关键所在.模板使得算法独立于存储的数据类型,而迭代其使算法独立于使用的容器类型.因此,它们都是STL通用方法的重要组成部分.为了解为何需要迭代器,我们来看如何为两种不同数据表现实现find函数,然后来看如何推广这种方法.首…