我的总结:
TclClass的子类是一些静态类,在NS2刚开始运行时,就会被初始化,调用这些类的构造函数,最终调用到TclClass的构造函数,TclClass的构造函数会调用bind()方法,在bind()方法内执行了SplitObject类的register方法,完成Otcl的注册。当在Otcl脚本中用new方法创建Otcl对象时,实际上调用的是create方法,创建出Otcl解释对象,在对象的创建过程中,执行构造函数init(),最终执行到SplitObject的init(),在SplitObject的init()方法中,会执行create—shadow()函数,而由于在TclClass的bind()方法中,create—shadow()和create_shadow()绑定,所以,TclClass的create_shadow()被执行,它调用TclClass的create()方法,创建TclObject类的对象(C++对象),并返回对象指针。至此,Otcl对象就和C++对象联系起来了。
=============================================================================================
=============================================================================================
相应程序参见http://blog.csdn.net/evan1130/archive/2009/02/14/3890759.aspx