내 코드에 문제가 있습니다. BLOCK_TYPE_IS_VALID의 오류가 발생했습니다. 새로운 기능 및 삭제 기능에 문제가 있음을 알고 있지만 찾을 수 없습니다. 나는 이러한 기능을 가진 MyString의 클래스가 있습니다힙 및 클래스 소멸자
//constructors and destructors
myString::myString() {
this->string_ = NULL;
this->length = 0;
cout << "created " << "NULL" << endl;
}
myString::myString(char a[]) {
int i;
for (i=0; a[i]!=NULL; i++);
this->length = i;
int j=0;
while(pow(2,j)<i)
j++;
this->string_ = new char [(int)pow(2,j)];
for (int i=0; i<this->length; i++)
this->string_[i] = a[i];
cout << "created " << this->string_ << endl;
}
myString::~myString() {
cout << "deleteing " << this->string_ << endl;
if (this->string_ != NULL)
delete [] this->string_;
}
을 나는이
myString a("aaa");
myString b("bbbb");
myString c;
c = a + b;
cout << c.get_lenght() << endl;
cout << c.get_string() << endl;
을 실행할 때 나는 줄 "C = A + B"에서 오류가 발생하고 프로그램이 중지됩니다.
클래스에 '연산자 +'를 정의해야 프로그램에서 문자열을 추가하는 방법을 알 수 있습니다. – Caesar
연산자'+'& operator'='를 과부하 시켰습니까? 그 코드를 보여줄 수 있습니까? – user93353
내가 본 코드를 기반으로 복사 생성자와 대입 연산자를 정의했기를 바랍니다. 그 코드를 보여줄 수 있습니까? –