QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1058|回复: 4

析构函数怎样实现?

[复制链接]
发表于 2005-8-2 15:59:34 | 显示全部楼层 |阅读模式
ClientConnection::ClientConnection()
{
        ClientIP = NULL; //用户 IP client ip
       
}

ClientConnection::~ClientConnection()
{

}

上一个析构函数需要怎样写?
发表于 2005-8-2 16:05:08 | 显示全部楼层
实在看不明白你想干什么,把代码粘得具体写,意图写的明确些吧
回复

使用道具 举报

 楼主| 发表于 2005-8-2 16:23:49 | 显示全部楼层
我就是不太清楚析构函数,要做什么,我看网上的一些文章,在析构函数里是把不带代参数的构造函数中的东西给删掉,如
#include <iostream>
#include <string>
using namespace std;   
class Teacher
{
    public:
    Teacher()
    {
        director = new char[10];
        strcpy(director,"王大力");
        //director = new string;
        // *director="王大力";//string情况赋值
    }
    ~Teacher()
    {
        cout<<"释放堆区director内存空间1次";
        delete[] director;
        cin.get();
    }
    char *show();
    protected:
    char *director;
    //string *director;
};

或是,在析构函数里是把带代参数的构造函数中的东西给删掉,如
#include <iostream>   
using namespace std;     
class Teacher   
{   
    public:   
    Teacher(char *temp)   
    {   
        director = new char[10];   
        strcpy(director,temp);   
    }
    ~Teacher()   
    {   
        cout<<"释放堆区director内存空间1次";   
        delete[] director;   
        cin.get();   
    }   
    char *show();   
    protected:   
    char *director;   
};   

Q1.如果向我这样的没有代参数的构造函数,析构函数要怎么写?
Q2.如果既有代参数的又有不带参数的构造函数,析构函数要怎么写?
  如:
ClientConnection::ClientConnection(char * ip)
{
        strcpy(ClientIP,ip);
}

ClientConnection::ClientConnection()
{
        ClientIP = NULL; //用户 IP client ip
}

ClientConnection::~ClientConnection()
{

}
回复

使用道具 举报

发表于 2005-8-2 16:46:57 | 显示全部楼层
C++一般在构造函数里申请内存空间,在析构函数释放;析构函数没有必须一定要做的事情,只是如果不释放的话会出现内存泄露,至于为什么申请和为什么释放空间,建议你找本讲解基本C++语法的书。这是对于你给的Teacher类的解释。
   至于你提的Q1和Q2,我实在不知道该怎么跟你解释,构造函数带不带参数跟析构函数怎么写没什么关系。建议学一下C++的基本语法,你的所有这些疑问应该是从讲语言的书上寻求答案,而不该是论坛
回复

使用道具 举报

 楼主| 发表于 2005-8-2 16:50:04 | 显示全部楼层
谢谢 fsilence
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 16:11 , Processed in 0.062750 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表