C++ 常用术语(后续补充)
2013-08-04 20:47
204 查看
内存对齐
常量折叠
堆栈解退(stack unwinding)
模板特化
模板偏特化
模板实例化
函数对象
单一定义规则(One-Definition Rule,ODR)
自引用
对象切片(object slicing)/切割:当把一个派生类对象赋给一个基类对象时,会发生对象切割。(另外用基类对象强制转换派生类对象也会),多态的实现是通过指针和引用;而对象的转换只会造成对象切割,不能实现多态。
所有权语义(owership semantics)
破坏性复制语义(distructive copy semantics)
菱形继承
向下强制:基类到派生类的转换
向上强制:派生类到基类的转换
交叉强制:从一个基类向其兄弟类的强制(多重继承中涉及)
RTTI:运行时类型信息,dynamic_cast,type_info
谓词:返回bool函数对象(或者函数),有一元谓词和二元谓词,标准库中有谓词
活动记录(activation record)
堆栈帧(stack frame)/调用栈
using声明与using指令
内存中编译(in-memory compilation)
窥孔优化器(peephole optimizer)
易碎的基类问题(fragile base-class problem)
句柄类(handle class)
可重入函数
位拷贝与值拷贝:位拷贝拷贝的是地址,而值拷贝则拷贝的是内容
浅拷贝(shallow copy)与深拷贝
返回值优化(return value optimization)
引用计数(reference counting)
写拷贝/写时复制(copy-on-write)
扇出(fan-out)
重定义(redefining):子类重新定义父类中有相同名称的非虚函数 ( 参数列表可以不同 ) 。
覆盖/重写(overriding):父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。
重载(overload)
多重指派(multiple dispatching)
异常中立的(exception neutral)
模板元编程
稳定排序与不稳定排序
惰性初始化(lazy initialization)
多重赋值
函数调用栈(function call stack)
逆变性与协变返回类型
继承树
资源获取即初始化RAII(resource acquisition is initialization)
关联名字查找ADL
内存泄露(memory leak)
野指针(wildpointer)
Liskov置换原则:
定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。
定义2:所有引用基类的地方必须能透明地使用其子类的对象。
里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:
子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
子类中可以增加自己特有的方法。
当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
短路求值(short-circuit evaluation)
返回值优化(Return Value Optimization RVO)
koenig查找:名字查找规则
常量折叠
堆栈解退(stack unwinding)
模板特化
模板偏特化
模板实例化
函数对象
单一定义规则(One-Definition Rule,ODR)
自引用
对象切片(object slicing)/切割:当把一个派生类对象赋给一个基类对象时,会发生对象切割。(另外用基类对象强制转换派生类对象也会),多态的实现是通过指针和引用;而对象的转换只会造成对象切割,不能实现多态。
所有权语义(owership semantics)
破坏性复制语义(distructive copy semantics)
菱形继承
向下强制:基类到派生类的转换
向上强制:派生类到基类的转换
交叉强制:从一个基类向其兄弟类的强制(多重继承中涉及)
RTTI:运行时类型信息,dynamic_cast,type_info
谓词:返回bool函数对象(或者函数),有一元谓词和二元谓词,标准库中有谓词
活动记录(activation record)
堆栈帧(stack frame)/调用栈
using声明与using指令
内存中编译(in-memory compilation)
窥孔优化器(peephole optimizer)
易碎的基类问题(fragile base-class problem)
句柄类(handle class)
可重入函数
位拷贝与值拷贝:位拷贝拷贝的是地址,而值拷贝则拷贝的是内容
浅拷贝(shallow copy)与深拷贝
返回值优化(return value optimization)
引用计数(reference counting)
写拷贝/写时复制(copy-on-write)
扇出(fan-out)
重定义(redefining):子类重新定义父类中有相同名称的非虚函数 ( 参数列表可以不同 ) 。
覆盖/重写(overriding):父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。
重载(overload)
多重指派(multiple dispatching)
异常中立的(exception neutral)
模板元编程
稳定排序与不稳定排序
惰性初始化(lazy initialization)
多重赋值
函数调用栈(function call stack)
逆变性与协变返回类型
继承树
资源获取即初始化RAII(resource acquisition is initialization)
关联名字查找ADL
内存泄露(memory leak)
野指针(wildpointer)
Liskov置换原则:
定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。
定义2:所有引用基类的地方必须能透明地使用其子类的对象。
里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:
子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
子类中可以增加自己特有的方法。
当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
短路求值(short-circuit evaluation)
返回值优化(Return Value Optimization RVO)
koenig查找:名字查找规则
相关文章推荐
- window常用命令(待后续补充)
- C++常用术语
- Zabbix补充03 Zabbix常用的术语
- 发些C++常用术语中英文对照【攒RP】
- C++常用术语及其英文翻译的含义和简单用途总结(六)
- 常用C/C++开发环境【待补充】
- MyEclipse最最常用的快捷方式,后续持续补充。
- C++常用术语及其英文翻译的含义和简单用途总结(二)
- 目前阶段学习中记录的几个常用DOS命令,后续补充中。。。。
- C++常用术语及其英文翻译的含义和简单用途总结(八)
- C++常用术语及其英文翻译的含义和简单用途总结(三)
- C++常用术语及其英文翻译的含义和简单用途总结(五)
- C++常用术语及其英文翻译的含义和简单用途总结(一)
- C++常用术语及其英文翻译的含义和简单用途总结(七)
- 用C++重写String类,实现并不是最完美的,欢迎指正补充!后续还有更多类似的实现放上来, 欢迎关注!!!
- 常用linux命令和例子,后续补充中。。。
- C++常用术语及其英文翻译的含义和简单用途总结(四)
- 对C++中引用的补充说明(实例)
- 函数重载补充:深入剖析C++重载函数的应用
- C++常用类型总结