类程序有4个警告,空间释放有问题!?//附带实现+ 重载
#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;}