原文:C/C++杂记:运行时类型识别(RTTI)与动态类型转换原理 运行时类型识别(RTTI)的引入有三个作用: 1. typeid操作符的实现 1.1. 静态类型的情形 C++中支持使用typeid关键字获取对象类型信息,它的返回值类型是const std::type_info&,例: 理论上讲, ...
分类:
编程语言 时间:
2016-06-13 21:52:40
阅读次数:
316
属性:封装了 一部分对象状态的函数成员 事件:简化对象状态转化处理的函数成员 C#不支持类的多继承(与C++不同),但可同时实现多个接口 C#是一种类型安全的语言,即类型只能通过定义的协议进行交互,从而保证内部类型的一致化。 C#支持静态类型化,在编译时会执行静态类型安全性检查 C#依靠运行时环境来... ...
运行时类型识别(RTTI)的引入有三个作用: 1. typeid操作符的实现 1.1. 静态类型的情形 C++中支持使用typeid关键字获取对象类型信息,它的返回值类型是const std::type_info&,例: 理论上讲,编译器会为每一种类型生成一个能唯一标识该类型的类型信息对象,type ...
分类:
编程语言 时间:
2016-06-10 20:20:29
阅读次数:
260
大多数的数据库引擎(到现在据我们所知的除了sqlite的每个sql数据库引擎)都使用静态的、刚性的类型,使用静态类型,数据的类型就由它的容器决定,这个容器是这个指被存放的特定列。
Sqlite使用一个更一般的动态类型系统,sqlite中,值的数据类型跟值本身相关,而不是与它的容器相关。Sqlite的动态类型系统和其他数据库的更为一般的静态类型系统相兼容,但同时,sqlite中的动态类型允许它能做...
分类:
数据库 时间:
2016-05-30 15:25:32
阅读次数:
252
RTTI概念
RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检查着这些指针或引用所指的对象的实际派生类型。
RTTI机制的产生
为什么会出现RTTI这一机制,这和C++语言本身有关系。和很多其他语言一样,C++是一种静态类型语言。其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象程序设计中多态性的要求,C...
分类:
编程语言 时间:
2016-05-23 10:45:45
阅读次数:
169
我们爱 Go。在过去的一年中,我们为了构建 Teamwork Desk 多个服务,写下了将近 20 万行 Go 代码。我们已经构建了该产品的十多个小型 HTTP 服务。为什么要使用 Go?Go 是一种快速(非常快)的静态类型编译语言,它有强大的并发模型、垃圾收集、优异的标准库、无继承、传奇的作者、多核支持以及非常不错的社区。更别说对于我们这种写 Web 应用的程序员,它的 goroutine-pe...
分类:
其他好文 时间:
2016-05-19 10:49:10
阅读次数:
354
二十四:面向对象
(1)数据抽象:接口实现分离。
继承:定义相似的类型
多态:以统一的方式使用。(【父类】引用或指针调用虚函数 实现多态【动态绑定】)
如果表达式也不是引用,也不是指针,则动态类型永远与静态类型一致。
virtual 在基类函数中说明,子类的相同函数默认都是virtual
子类参数列表(const/引...
分类:
编程语言 时间:
2016-05-18 19:31:44
阅读次数:
205
二十七:
(1)异常使我们能将问题的检测和解决分离开来。
当匹配不到catch时,将调用标准库函数terminate(当异常没有被捕获)
异常对象:编译器使用异常抛出表达式来对异常对象进行拷贝初始化,因此throw表达式必须拥有完全类型(只是声明如class A;不是完全类型),如果是类类型的话,相应的类必须含有一个可访问的析构函数和一个可访问的拷贝或移动构造函数。
静态类型...
分类:
编程语言 时间:
2016-05-18 19:28:26
阅读次数:
220
以下内容来自维基百科,关于静态类型检查和动态类型检查的解释: 静态类型检查:基于程序的源代码来验证类型安全的过程; 动态类型检查:在程序运行期间验证类型安全的过程; Java使用静态类型检查在编译期间分析程序,确保没有类型错误。基本的思想是不要让类型错误在运行期间发生。 以下代码是一个例子,理解了他 ...
分类:
编程语言 时间:
2016-05-18 10:34:38
阅读次数:
178
类型系统
强类型
我的理解就是类型越强,使用方法越接近数学的使用方法,也就越安全
静态类型
编译器在编译器知道值的类型,也就意味着不会出现runtime异常
自动推导
函数调用
形式为函数名 参数1 参数2 ...函数调用的优先级比一般的操作符要高,但是比括号低
符合数据类型->元组
和list不同的是tuple可以放不同类型的数据,但是长度固定
基本操作
列表操作
head获取第一...
分类:
其他好文 时间:
2016-05-12 12:59:05
阅读次数:
204