Size: a a a

2020 July 12

CC

Cool Cooler in C++ Together 2.0
блин
источник

CC

Cool Cooler in C++ Together 2.0
а я чёт подумал, что new вернёт то, что и так было в str
источник

CC

Cool Cooler in C++ Together 2.0
типа в том же самом месте память займёт
источник

CC

Cool Cooler in C++ Together 2.0
типа как освободил так и займёт
источник

CC

Cool Cooler in C++ Together 2.0
а ведь нифига, с чего бы это
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
неинициализированная память
Спасибо!
источник

CC

Cool Cooler in C++ Together 2.0
Cool Cooler
String &operator=(const String &other)
{
   delete[] str;
   str = new char[other.size + 1];
   strcpy(str, other.str);
   size = other.size;
   return *this;
}
я бы кста str куда-нибудь сохранил, а потом в конце по нему delete[] сделал
источник

CC

Cool Cooler in C++ Together 2.0
на всякий случай
источник

CC

Cool Cooler in C++ Together 2.0
char* previousStr = str;
...
delete[] previousStr;
источник

CC

Cool Cooler in C++ Together 2.0
или лучше так:
работаю с char* newStr
а в конце delete[] str; str = newStr;
источник

CC

Cool Cooler in C++ Together 2.0
во, тогда исключение в new не даст инфе потеряться
источник

CC

Cool Cooler in C++ Together 2.0
Cool Cooler
или лучше так:
работаю с char* newStr
а в конце delete[] str; str = newStr;
а лучше в конце:
char* previousStr = str;
str = newStr;
delete[] previousStr;
источник

CC

Cool Cooler in C++ Together 2.0
чтоб прям максимально надёжно
источник

🦊

🦊fox.cpp in C++ Together 2.0
std::swap(str, newStr);
delete[] newStr;
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
std::swap(str, newStr);
delete[] newStr;
чётко
источник

CC

Cool Cooler in C++ Together 2.0
а swap exception'ов не делает?
источник

🦊

🦊fox.cpp in C++ Together 2.0
не должен, по идее
источник

🦊

🦊fox.cpp in C++ Together 2.0
Cool Cooler
а лучше в конце:
char* previousStr = str;
str = newStr;
delete[] previousStr;
мне кажется, что для простых типов оно именно так и реализовано :D
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
std::swap(str, newStr);
delete[] newStr;
А ты бы сам вот сделал?
источник

CC

Cool Cooler in C++ Together 2.0
Cool Cooler
а лучше в конце:
char* previousStr = str;
str = newStr;
delete[] previousStr;
Или всё же так?
источник