分类：电脑/网络-互联网-上网帮助
问题：麻烦老师看一下为什么编译时会出错??#include&lt;io 
#include<tream> #include<cstring> using namespace std; class Person { private: char *name; public: Person(){ name=new char[16]; } ~Person(){ delete[] name;} void SetName(const char *name1) { if(strlen(name)+1<16) strcpy(name,name1); } void PrintName(){ cout<#include<tream> #include<cstring> using namespace std; class Person { private: char *name; public: Person(){ name=new char[16]; } ~Person(){ delete[] name;} void SetName(const char *name1) { if(strlen(name)+1<16) strcpy(name,name1); } void PrintName(){ cout<<name<<endl; } }; int main() { Person p1; p1.SetName("John"); p1.PrintName(); Person p2(p1); p2.SetName("Alice"); p2.PrintName(); p1.PrintName(); return 0; }
回答：把你用char*的地方都换成用string类类型试试。 char*以及相关的函数是相当不安全的用法，我在上课的时候已经说过，现在提倡用string。