静态绑定和动态绑定是C++多态性的一种特性。1、对象的静态类型和动态类型:对象的静态类型:对象在声明是采用的类型,在编译期确定;对象的动态类型:当前对象所指的类型,在运行期决定,对象的动态类型可以更改,但静态类型无法更改。class B{};class C: public B{};class D: ...
分类:
编程语言 时间:
2015-06-14 21:15:18
阅读次数:
173
多态其实就是多种状态,overload(重载)是多态的一种,属于编译期绑定,也就是静态绑定(前期绑定),override是运行期间绑定(后期绑定)。多态的条件:有继承;有覆盖;父类指向子类对象的引用。对静态方法的覆盖://测试程序
publicclassTest{
publicstaticvoidmain(Stri..
分类:
编程语言 时间:
2015-06-12 15:10:58
阅读次数:
141
Java注解能够提供代码的相关信息,同时对于所注解的代码结构又没有直接影响。在这篇教程中,我们将学习Java注解,如何编写自定义注解,注解的使用,以及如何使用反射解析注解。
注解是Java 1.5引入的,目前已被广泛应用于各种Java框架,如Hibernate,Jersey,Spring。注解相当于是一种嵌入在程序中的元数据,可以使用注解解析工具或编译器对其进行解析,也可以指定注解在编译期或运行期有效。...
分类:
其他好文 时间:
2015-06-12 11:47:34
阅读次数:
108
本节条款:了解模板元编程本节条款是对模板元编程的简单介绍,让读者知道有这么一种编程方式,更确切的说是一种技术。
那么,什么是模板元编程?模板元编程有什么好处?按照作者的原话就是:
1. TMP可将工作由运行期转移到编译期,因而得以实现早期错误侦测或者更高的执行效率。
2. TMP可被用来生成“基于政策选择组合”的客户定制代码,也可以用来避免生成对某些特殊类型并不适合的代码。
说原理容易让人不...
分类:
编程语言 时间:
2015-06-11 13:07:41
阅读次数:
163
本节条款的题目:请使用trait classes来表示类型信息本节条款主要讲述的技术是如何在编译期间实现对迭代器类型的判断,根据判断的类型进行最优处理。
我们先来看一下迭代器的种类:
1.input_iterator:只读,只能逐个前移
2.output_iterator:只写,只能逐个前移
3.forward_iterator:可读可写,只能逐个前移
4.bidirectional_it...
分类:
编程语言 时间:
2015-06-09 11:52:17
阅读次数:
123
和C++泛型对比,Java泛型只是一种编译期间的擦拭机制。这是由于考虑到和以前的兼容而考虑的一种折中方案。在编译好的泛型代码里,编译期间已经把所有的泛型信息给擦拭掉,因此无法获得任何有关泛型参数类型的信息。因此List和List实际上是同一类型。
参考以下代码:
//以下3个例子都无法通过编译
public void testGeneric(Object arg) {...
分类:
编程语言 时间:
2015-06-07 11:10:10
阅读次数:
185
异常分类图解:Throwable |--Error 严重问题,我们不处理。 |--Exception |--RuntimeException 运行期异常,我们需要修正代码 |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过异常对象的常见方...
分类:
编程语言 时间:
2015-06-05 22:23:45
阅读次数:
165
本节条款对比了一下两对概念的对比。
首先是 编译期多态和运行期多态。
接着是 显示接口和隐式接口编译期多态是由于模板而产生的。
如下代码:#include
using namespace std;
class Bird
{
public:
Bird(int v):value(v){}
int getSize(){ return value; }
privat...
分类:
编程语言 时间:
2015-06-04 11:59:47
阅读次数:
146
一、C++内存管理1.内存分配区域[常量数据(const data)区:] 常量数据区存储字符串等在编译期间就能确定的值。类对象不能存在于这个区域中。在程序的整个生存周期内,区域中的数据都是可用的。 区域内所有的数据都是只读的,任何企图修改本区域数据的行为都会造成无法预料的后果。之所以会如此,是.....
分类:
其他好文 时间:
2015-06-04 11:14:00
阅读次数:
134
上几张图常量池(constant
pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。String.intern():存在于.class文件中的常量池,在运行期被JVM装载,并且可以扩充。String的intern()方法就是扩充常..
分类:
其他好文 时间:
2015-06-04 06:26:34
阅读次数:
188