[置顶] C++中RTTI机制剖析】的更多相关文章

C++中要想在运行时获取类型信息,可没有Java中那么方便,Java中任何一个类都可以通过反射机制来获取类的基本信息(接口.父类.方法.属性.Annotation等),而且Java中还提供了一个关键字,可以在运行时判断一个类是不是另一个类的子类或者是该类的对象,但C++却没有这么多功能,C++中获得类信息只能通过RTTI机制,而且功能还是很有限的,因为C++中最终生成的代码是直接与机器相关的,而Java中会生成字节码文件,再由JVM加载运行,字节码文件中可以含有类的信息. C++中RTTI的简单…
NS2中对TCP数据包和ACK包的TCP Sink类的主要实现代码详尽剖析,限于个人水平,如有错误请留言指出! TcpSink类的recv()方法: void TcpSink::recv(Packet* pkt, Handler*) { int numToDeliver; int numBytes = hdr_cmn::access(pkt)->size();//接收到的包的大小 // number of bytes in the packet just received hdr_tcp *th…
分类: 计算机系统 linux2010-06-01 23:35 60721人阅读 评论(105) 收藏 举报 linux2010存储  一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事.    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新进程中,…
最近利用NS2做TCP拥塞控制协议的仿真,发现很多变量的方法含义都是解释的不清楚,给核心模块修改带来很多麻烦,所以决定用最准确的语言解释成员变量.方法,术语等的含义.限于个人水平,若有错误请留言指正! 盲点一: int recover_;(tcp.h/tcp.cc) 这个变量的最准确的含义是发送端在收到3个重复的ACK或超时或者源抑制或者带有ECN-Echo的ACK时,发送端已经发送的最大序列号. 盲点二: 源抑制(source quench):当TCP/IP主机发送数据到另一主机时,如果速度达…
Java的反射机制可以说是在Spring中发挥的淋漓尽致,下面要看的代码就是通过反射机制来实现向一个类注入其实际依赖的类型,这个过程的实现会交由Spring容器来帮我们完成. JavaBean中针对属性一般都有一组设置/获取方法(setXXX/getXXX),这两个方法可以由IDE给我们自动产生,当然你也可以手动进行编写,这是你的自由,下面的例子就是Spring中利用setter方法来实现依赖注入. 源代码如下: package com.pp; //一个普通的JavaBean public cl…
HashMap.HashSet.HashTable之间的区别是Java程序员的一个常见面试题目,在此仅以此博客记录,并深入源代码进行分析: 在分析之前,先将其区别列于下面 1:HashSet底层采用的是HashMap进行实现的,但是没有key-value,只有HashMap的key set的视图,HashSet不容许重复的对象 2:Hashtable是基于Dictionary类的,而HashMap是基于Map接口的一个实现 3:Hashtable里默认的方法是同步的,而HashMap则是非同步的…
Jquery中的DOM操作 为了能全面的讲解DOM操作,首先需要构建一个网页. HTML代码: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+re…
在Tree组件中经常要删除某个节点,而删除之后重新刷新加载该Tree组件会影响整个操作效果和效率,因此,无刷新删除就比较好,既删除了节点也没有刷新tree,而使Tree的状态处于删除之前的状态. 无刷新删除操作代码如下: tree.dataDescriptor.removeChildAt(parentNode,deleteNode,index,tree.dataProvider); 参数所代表的意思: parentNode:要删除的目标节点的父节点数据 deleteNode:要删除的目标节点 i…
mysql中的enum和set其实都是string类型的而且只能在指定的集合里取值,  不同的是set可以取多个值,enum只能取一个值.   CREATE TABLE `20121101_t` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `cl` set('x','w','r') NOT NULL, `c2` enum('f','d') NOT NULL, PRIMARY KEY (`id`) ) E…
先来张效果图 gridview 中嵌套gridview的原理是这样的,在父gridview中建一个摸板列,然后再模版列当中在放入子gridview,然后再父gridview的OnRowDataBound事件中在对子gridview进行数据绑定,首先要获取子gridview的控制权,然后进行数据绑定 protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e) { utils util=new utils();…