170 похожих чатов

Привет. Возникла проблема с перегруженным оператором. По сути он все складывает

и строку присваивает правильно (в тестовом выводе всё гуд), но на отладке, после выполнения возвращения, он меняет сроку на другую, рандомной длины.
И после завершения программы выдаёт ошибку delete_scalar.cpp
Что не так?

Date Date::operator+(const Date& other) const
{
int new_date = date + other.date;
int new_month = month + other.month;
int new_year = year + other.year;
char word[] = "Unknown";
Date new_date_obj { new_date, new_month, new_year, word };
new_date_obj.print();

return new_date_obj;
}

15 ответов

235 просмотров

Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

тут все не так. начиная с сигнатуры вашего оператора

Всё ещё неправильно :( Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

Всё ещё неправильно :( Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

Мне кажется, не хватает текста ошибки. А еще конструкторов и деструктора, при наличии

Nickolas Valentine- Автор вопроса
Mikail Bagishov
Мне кажется, не хватает текста ошибки. А еще конс...

Ошибка : Инструкция точки останова (оператор __debugbreak() или аналогичный вызов) выполнена в Date1.exe. Date::Date(int date, int month, int year, char* day_of_week) { this->date = date; this->month = month; this->year = year; this->day_of_week = new char[strlen(day_of_week) + 1]; strcpy(this->day_of_week, day_of_week); this->day_of_week[strlen(day_of_week)] = '\0'; } Date::~Date() { delete[] day_of_week; }

Nickolas Valentine
Ошибка : Инструкция точки останова (оператор __deb...

ещё и инициализировать можно вот так Date(int date) : date(date)

Nickolas Valentine- Автор вопроса
Андрей Будиловский
Тогда он не прострелит себе ноги

Если я использую стринг, тогда лектор прострелит мне ноги

Nickolas Valentine
Если я использую стринг, тогда лектор прострелит м...

не используй указатели, хотя бы по ссылке передавай. Или копируй, так точно ноги останутся целы

Nickolas Valentine
Если я использую стринг, тогда лектор прострелит м...

Хорошо, тогда следуй правилу 5: - Копирующий конструктор - Перемешающие конструктор - Копирующий оператор присваивания - Перемешающие оператор присваивания - Деструктор Если в классе объявлено (или заделичено) хотя бы одно, то надо объявить (или заделитить) и все остальное

Nickolas Valentine- Автор вопроса
Aniki Hi$ok@ 🌈 Z 🐀
не используй указатели, хотя бы по ссылке передава...

В этом случае ноги так же будут прострелены, мне нужно использовать указатель

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта