只实现了普通构造,拷贝构造,析构和赋值四个操作。
但坑比想象的多。
坑1:普通构造如果是nullptr,也要给data分配一个字节空间存放‘\0’,因为空字符串有一个‘\0’
坑2:拷贝构造传参必须用引用,如果是单纯的传实例,调用拷贝构造时需要一个形参存放实例,又相当于一次拷贝构造,陷入死循环
坑3:用strlen()求的是s的长度,但不包含‘\0’,可strcpy时‘\0’是一起拷贝的,所以分配空间时是
strlen(s.data)+1
2023-07-18 22:41:28
只实现了普通构造,拷贝构造,析构和赋值四个操作。
但坑比想象的多。
坑1:普通构造如果是nullptr,也要给data分配一个字节空间存放‘\0’,因为空字符串有一个‘\0’
坑2:拷贝构造传参必须用引用,如果是单纯的传实例,调用拷贝构造时需要一个形参存放实例,又相当于一次拷贝构造,陷入死循环
坑3:用strlen()求的是s的长度,但不包含‘\0’,可strcpy时‘\0’是一起拷贝的,所以分配空间时是
strlen(s.data)+1