为什么需要virtual member function又不能滥用virtual
若基类设计者把本应设计成virtual的成员函数设计成非virtual,则继承类将无法实现改写(overridden),给继承类的实现带来不便;
另一方面,一旦成员函数被设计成virtual,则该类的对象将额外增加虚拟指针(vptr)和虚拟表格(vtbl),所以倘若出于方便继承类overridden的目的而使所有成员函数都为virtual,可能会影响效率,因为每个virtual成员函数都需付出动态分派的成本。而且virtual成员函数不能内联(inline),我们知道,内联发生在编译时刻,而虚拟函数在运行时刻才处理。对于那些小巧而被频繁调用、与类型无关的函数,显然不应该被设置成virtual。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/loyal_baby/archive/2009/08/23/4474787.aspx
static 作用总结
http://www.360doc.com/content/06/0427/18/7445_106133.shtml
tCp 与 UDp 的区别是什么?
tCp/Ip 传输层
OSI 和 tCp/Ip 模型在传输层定义两种传输协议:tCp(或传输控制协议)和 UDp(或用户数据报协议)。
UDp
UDp 与 tCp 的主要区别在于 UDp 不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDp 在许多方面非常有效。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用 UDp。ICQ 短消息使用 UDp 协议发送消息。
许多程序将使用单独的 tCp 连接和单独的 UDp 连接。重要的状态信息随可靠的 tCp 连接发送,而主数据流通过 UDp 发送。
tCp
tCp 的目的是提供可靠的数据传输,并在相互进行通信的设备或服务之间保持一个虚拟连接。