(1)　构造函数不能为虚函数让我们来看看大牛C++之父　Bjarne　Stroustrup　在《The　C++　Programming　Language》里是怎么说的:To　construct　an　object,　a　constructor　needs　the　exact　ty　虚函数相应一个指向vtable虚函数表的指针,但是这个指向vtable的指针事实上是存放在对象的内存空间空的。如果构造函数是虚的,就需要通过vtable来调用,但是这个对象还没有被实例化,也就是说内存空间还没有,怎么能找到vtable呢?所以构造函数不可能是虚函数。...　程序源码如下:　#include　using　namespace　std;　class　base　{　public:　base(){};　virtual　void　v1(){cou　1.虚函数对应一个虚函数表,虚函数表其实是存储在对象的内存空间的。如果构造函数是虚的,就需要通过　虚函数表来调用,可是对象还没有实例化,也就是内存空间还没有,就没有虚函数表,所以构造函数不能是虚函数。2.虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创建对象时自动调用的,不可能通过父类的指针或者引用去调用,因此也就规定构造函数不能是虚函数。　一、构造函数不能为虚函数的理由: 1,从存储空间角度　em>虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过　vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。 2,从使用角度 em>虚函数主要用于　网上有说是因为虚函数表需要初始化,但是我记得虚函数表是在编译的时候就初始化好的了,不是在构造函数里面　还有什么其他答案吗??　我觉得其实如果用户可以手动调用构造函数(我记得new有个语法可以让编译器不　TCP提供一种面向连接的、可靠的字节流服务。　面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。