首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类程序有4个警告,空间释放有有关问题!//附带实现+ 重载

2012-03-15 
类程序有4个警告,空间释放有问题!?//附带实现+ 重载C/C++ code#include iostream#include cstringusin

类程序有4个警告,空间释放有问题!?//附带实现+ 重载

C/C++ code
#include <iostream>#include <cstring>using namespace std;class anything{public:    anything():name(),age(){}    anything(char* cp_name,void* cp_age):name(cp_name),age(cp_age)    {        name = new char[strlen(cp_name)+1];        strcpy(name,cp_name);        age=static_cast<void*>(cp_age);    }    anything(const anything& anything01)    {        name = new char[strlen(anything01.name)+1];        strcpy(name,anything01.name);        char* age_member = (char*)anything01.age;        char* age_str = new char[strlen(age_member)+1];        strcpy(age_str,age_member);        age = (void*)age_str;        delete[] age_member;        delete[] age_str;    }  /*   anything operator+ (const anything& anything01)    {        char* swap = new char[strlen(name)+strlen(anything01.name)+1+1];        strcpy(swap,name);        char* c = ",";        strcat(swap,c);        strcat(swap,anything01.name);        char* buf = new char[256];        sprintf(buf,"%s,%s",this->(*static_cast<int*>(age)),anything01.(*static_cast<int*>(age)));        delete buf;        delete swap;        delete c;        return anything(swap,static_cast<void*>(buf));    }*/    ostream& operator>>(ostream&os)    {        return os<<name<<" "<<*static_cast<int*>(age);    }    ~anything()    {        delete[] name;        name=NULL;        delete[] age;        age=NULL;    }private:    char* name;    void* age;};class anything_sub:public anything{public:private:    int score;};int main(){    int object_age = 19,object_age01=25,object_age02=30;    anything anything01("David",static_cast<void*>(&object_age));    anything01>>cout<<endl;    anything anything02("Jackson",static_cast<void*>(&object_age01)),anything03("Edward",static_cast<void*>(&object_age02)),anything04;    anything04=anything02;    anything04>>cout<<endl;    return 0;}


[解决办法]
既然是C++,为何不用std::string?
[解决办法]
safe

热点排行