If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.
Nếu như cài đặt là hàm thành phần thì em phải viết là a.strcmp(b) hay a.strlen(), ... Như vậy đâu có giống với cấu trúc các hàm có sẵn đâu thầy?
Em nên phân biệt thư viện string của C++ và thư viện string.h của C chuẩn. Code các hàm tương tự như trong string.h cho một lớp tương tự như string của C++ là một ý tưởng vô cùng kỳ quặc
Nếu không quan tâm đến cấp phát thì em khai báo luôn cái mảng tĩnh 100 phần tử đi và khỏi cần destructor nữa.
Dĩ nhiên là em sẽ quan tâm tới nó sau khi tìm được solution cho vấn đề này
Trước đây em hay làm theo cách: cấp phát thật nhiều cho người dùng nhập vào, sau đó tạo 1 chuỗi mới vừa đủ và copy qua, cuối cùng xóa cái chuỗi ban đầu đi
Làm vậy thì khá là dài dòng rắc rối tốn thời gian, nhưng em chưa nghĩ ra cách nào hợp lý và hiệu quả hơn :go:
Em nên phân biệt thư viện string của C++ và thư viện string.h của C chuẩn. Code các hàm tương tự như trong string.h cho một lớp tương tự như string của C++ là một ý tưởng vô cùng kỳ quặc
đúng là em có chút nhầm lẫn qua lại giữa hai thư viện này :confuse:
bạn xây dựng thêm copy constructor đi, khi bạn truyền tham trị như trên, nếu bạn ko viết copy contructor thì nó sẽ xài copy constructor mặc định của C, dẫn tới việc trùng địa chỉ và bị xoá 2 lần. Tốt nhất khi làm bài tập mà thành phần có cấp phát động bạn nên có copy constructor và operator = thì sẽ ko gặp lỗi này đâu
Comment