c++中“~”符号有什么含义?

比如在一下一段程序中,这是旧版本的代码用新版本vs打开的。会不会因为软件不同生成的?classCSerial{public:CSerial();~CSerial();BO... 比如在一下一段程序中,这是旧版本的代码用新版本vs打开的。会不会因为软件不同生成的?
class CSerial
{
public:
CSerial();
~CSerial();
BOOL Open( int nPort = 1, int nBaud = 500000 );
BOOL Close( void );
int ReadData( void *, int );
int ReadData2( void *, int );
int SendData( const char *, int );
int ReadDataWaiting( void );
HANDLE rHandle(void){return (m_hIDComDev);};
BOOL IsOpened( void ){ return( m_bOpened );};
HANDLE hcom;
protected:
BOOL WriteCommByte( unsigned char );
HANDLE m_hIDComDev;
OVERLAPPED m_OverlappedRead, m_OverlappedWrite,m_OverlappedRead2, m_OverlappedWrite2; //设置异步I/O操作
BOOL m_bOpened;
};
展开
 我来答
JINLegend
2013-07-08 · TA获得超过802个赞
知道小有建树答主
回答量:241
采纳率:100%
帮助的人:124万
展开全部

补楼上所述,所谓“对象销毁”,意思就是当以下两种情况发生时,对象即将被销毁,销毁前的最后一刻调用析构函数:

  1. 对于分配在堆栈上的对象,如 CSerial c,当离开其作用域(比如某函数里创建的c对象,在函数姐返回前)发生对象销毁。

  2. 对于分配在堆上的对象,如CSerial* p=new CSerial();当你调用delete p指令时,发生对象销毁。

析构函数一般情况下不需要声明。但是本着谁在堆上分配对象,谁负责销毁的原则,如果一个类的全局变量里有指向一个分配在堆里的对象,那么在析构函数里释放他。比如:

class CSerial
{

private:

    A* a;
public:
    CSerial()

    {

        a=new A();

    }

    ~CSerial()

    {

        if(a!=null) delete a;

    }

};

Lansing999
2013-07-08 · 超过64用户采纳过TA的回答
知道小有建树答主
回答量:119
采纳率:0%
帮助的人:106万
展开全部
“~”这个符号所代表的函数为析构函数,
在C++的面向对象编程中,都会有一个以上的构造函数形如CSerial();

和一个析构函数形如~CSerial();

它的作用很简单,就是在销毁对象时,释放对象的内存空间。
还有什么不懂的,可以继续问
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式