Chapter 28.命名空间、多重继承和虚继承
2012-12-26 23:18
302 查看
命名空间
using声明eg:
using std::list;//推荐
using指示
eg:
using namespace std;
防止命名空间污染,可不连续
eg: namespace [NameSpaceName] { //自成一域,在[NameSpaceName]这个命名空间中 }命名空间可嵌套
内部的成员会把外部的同名成员屏蔽
eg: namespace A { int a; namespace B { int a;//hide A::a whthin B } } 访问如下: A::a; A::B::a;匿名命名空间
eg: namespace local { //相当于一个局域作用域 //可以取代static成员,使成员在文件外不可见 namespace { int i; } } local::i=42;
多重继承
eg: class Bear : public ZooAnimal { }; class Panda : public Bear, public Endangered //派生列表决定构造/析构顺序,先看Bear,Bear如果有基类就先ZooAnimal,再Bear,再下一个派生列表成员Endangered { Panda(std::string name,bool on Exhibit) :[Bear(...),]Endangered(...) { } };构造顺序
ZooAnimal→Bear→Endangered→Panda
析构顺序
ZooAnimal←Bear←Endangered←Panda
多重继承下的虚函数、复制控制类作用域略
虚继承
应用于一个基类多次在派生层次中出现,但只继承一个共享的基类子对象共享的基类子对象称为虚基类
eg: class istream : public virtual ios{}; class ostream : public virutal ios{}; eg: class Bear : virtual public ZooAnimal{};//Bear科 class Raccoon : public virtual ZooAnimal{};//Raccoon科 class Panda : public Bear, public Raccoon, public Endangered{}构造顺序
先是虚基类→再按上面多重继承的顺序来
eg: class Character{}; class BokkCharacter : public Charracter{}; class ToyAnimal{}; class TeddyBear : public BookCharacter, public Bear, public virtual ToyAnimal{};//其中Bear有ZooAnimal这个虚基类顺序如下:
ZooAnimal
ToyAnimal
Character
BokkCharacter
Bear
TeddyBear
析构相反
相关文章推荐
- C++ primer:命名空间与多重继承
- C++ premier -- 异常、命名空间以及多重继承
- 命名空间与多重继承
- c# 命名空间之System.IO(继承关系)
- 积少成多Flash(2) - ActionScript 3.0 基础之包、类、包外类、命名空间、属性、方法、接口和继承
- C#学习笔记(五)中级 方法的重载,参数,继承和多态,异常处理,命名空间,接口,泛型
- JS(十五)继承模式,命名空间,对象枚举(上)
- JS(十六)继承模式,命名空间,对象枚举(下)
- 构造方法、命名空间、String 类、继承、异常捕获
- C++学习6-面向对象编程基础(运算符重载、类的派生与继承、命名空间)
- 积少成多Flash(2) - ActionScript 3.0 基础之包、类、包外类、命名空间、属性、方法、接口和继承
- js 高级开发:对象属性prototype,自定义命名空间,自定义继承,闭包封装
- struts.xml配置文件中的包,命名空间,默认继承的介绍
- 12-12面向对象--引用类型与值类型、命名空间与类库、继承(父类与子类)
- 继承模式,命名空间,对象枚举
- JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
- xxresult(28): error C2825: '_Fty': 当后面跟“::”时必须为类或命名空间
- js模块,类,继承,命名空间,私有属性等相关概念梳理
- python 命名空间字典 字典键 继承树的打印
- 《C++ Primer》 第17章 用于大型程序的工具 [ 异常处理,命名空间,多重继承与虚继承 ] (不够熟)