当然错了——
如果这样定义
CSerialPort* m_port=new CSerialPort;
才能用
delete m_port; 
因为这样是在堆上建立的,程序不会自动释放所分配的内存,我们必须用delete释放之。像你那样定义
CSerialPort m_port;
是不用我们自己删除对象的,因为他是在堆栈中建立的,内存会自动释放。