C++ 类中的《复制构函数》 的问题。求指点~
class stringbad{private: char * str; int len; static int num_strings;public: stringbad(const char *s); stringbad(); ~stringbad(); friend ostream & operator << (ostream & os, const stringbad & st); stringbad(const stringbad &);};stringbad::stringbad(const char *s){ len = strlen(s); str = new char[len + 1]; strcpy(str, s); num_strings ++; cout << num_strings << ": " << str << " object creaeted \n"; }stringbad::stringbad(){ len = 4; str = new char [4]; strcpy(str, "C++"); num_strings ++; cout << num_strings << ": " << str << " default object created \n" ;}/*我看的是C++ primer plus 第五版。看到十二章 类那,她说使用 深度复制 来解决 将一个对象 赋值 给另一个对象后, 释放一个对象的指针时,另一个对象不受其影响,就是这样定义 复制构造函数 就可以解决这个问题:stringbad :: stringbad(const stringbad & st){ num_strings++; len = st.len; str = new char[len +1]; strcpy(str, st.str); cout << …… ……; }我不明白 为什么这样定义就可以解决上述的问题。。。。 大家帮忙讲解一下。。谢谢啦。。。*/