博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++中的常见术语
阅读量:7081 次
发布时间:2019-06-28

本文共 1568 字,大约阅读时间需要 5 分钟。

内存对齐

常量折叠

堆栈解退(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查找:名字查找规则
 

 

 

转载于:https://www.cnblogs.com/xkfz007/archive/2012/07/02/2573772.html

你可能感兴趣的文章
通过DevOps考古学了解生产环境
查看>>
nginx lua指令执行顺序
查看>>
新书问答:Agile Management
查看>>
精益企业中架构师的角色
查看>>
angular-cli创建angular2项目并添加ng2-bootstrap
查看>>
leetcode讲解之开篇--刷题技巧
查看>>
Ruby 2.5.0概览
查看>>
改变从内部开始:开发者与管理者的协作
查看>>
mac使用minikube安装kubernetes
查看>>
Chrome开发者工具中关于“Deferred long-running timer task(s) ”的警告
查看>>
聊聊跨域
查看>>
Windows 下使用 MinGW 编译安装 (G)vim 添加 Lua 等编程语言支持
查看>>
Objective-C基本数据类型
查看>>
利用localStorage本地储存js文件
查看>>
[聊一聊系列]聊一聊百度移动端首页前端速度那些事儿
查看>>
shell script编程小结——附带实例
查看>>
在 Laravel 项目中使用 Glup 之 Laravel-Elixir
查看>>
Nginx、CGI、FastCGI、PHP-CGI、PHP-FPM处理流程
查看>>
Tornado 4.3文档翻译: web框架-RequestHandler和Application 类
查看>>
python之itertools的排列组合相关
查看>>