Срабатывание точки останова

При компиляции этого кода выбивает ошибку срабатывании точки останова, которую я не ставил

#include <iostream>
#include <cstring>

using namespace std;


class String {
public:
    String();
    String(const char* string);
    void printString();
    void get_len(const char* string);
    ~String();
protected:
    char* string;
    int len;
};
class String_indent : String {
public:

    String_indent();
    String_indent(const char* string);
    void Upper_case();
    void Lower_case();
    int out(char str);
    ~String_indent();

};
int main()
{
    String string("a");
    String_indent string1("String");
    string1.Upper_case();
    return 0;
}
/*Конструктор без параметра класса String для задания начальных данных переменным string*/
String::String()
{
    string = nullptr;
    len = 0;
}
/*Конструктор с параметром который содержит указатель на массив чаров string и определяет основную реализацию строки*/
String::String(const char* string)

{
    len = strlen(string);
    this->string = new char[len + 1];
    for (int i = 0; i < len; i++) {
        this->string[i] = string[i];
    }
    this->string[len] = '\0';
}
void String::printString()
{
    cout << string;
}
void String::get_len(const char* string)
{
    int l = strlen(string);
    cout << l;
}
/*Деструктор класса очищает память*/
String::~String()
{
    delete[] this->string;
}
void String_indent::Upper_case()
{
    for (int i = 0; i < len; i++) {
        if ((this->string[i] >= 141) && (this->string[i] <= 172)) {
            this->string[i] = string[i] - 40;
            cout << string[i];
        }
        if ((this->string[i] >= 101) && (this->string[i] <= 132)) {
            this->string[i] = string[i];
            cout << string[i];
        }

    }
}

void String_indent::Lower_case() {
    for (int i = 0; i < len; i++) {
        if ((this->string[i] >= 101) && (this->string[i] <= 132)) {
            this->string[i] = string[i] + 40;
        }
        if ((this->string[i] >= 141) && (this->string[i] <= 172)) {
            this->string[i] = string[i];
        }

        cout << string[i];
    }
}
int String_indent::out(char str)
{
    int count = 0;
    try {
        for (int i = 0; i < len; i++) {
            if (this->string[i] != str) {
                count++;
            }
            else return count;
        }
    }
    catch (exception exception) {
        return 0;
    }
}
String_indent::String_indent(const char* string) {
    len = strlen(string);
    this->string = new char[len + 1];
    for (int i = 1; i < len; i++) {
        this->string[i] = string[i];
    }
    this->string[len] = '\0';
}
String_indent::~String_indent() {
    delete[] this->string;
}

Думаю что проблема в этом куске кода, но как его исправить?

String_indent::String_indent(const char* string) {
    len = strlen(string);
    this->string = new char[len + 1];
    for (int i = 0; i < len; i++) {
        this->string[i] = string[i];
    }
    this->string[len] = '\0';
}

Ответы (0 шт):