Size: a a a

2020 July 26

AF

Aidar Fattakhov in supapro.cxx
Roman Hakh
https://www.diva-portal.org/smash/get/diva2:524732/FULLTEXT01.pdfIT

Нашел такую статью
Тут описуют как создать п2п чат
Схожее уже есть gnutella bit torrent
Чейто курсач?)
источник

RH

Roman Hakh in supapro.cxx
Aidar Fattakhov
Чейто курсач?)
Что то вроде этого)
источник

UT

Unknown T. in supapro.cxx
Добрый вечер. Есть код:
auto arr = Array<int>();

std::cout << "FLAG 1 \n";
arr = Array<int>(17);
std::cout << "FLAG 2\n";

Между флагом 1 и флагом 2 вызывается деструктор, но вызывается он после конструктора, и деструкцирует только что созданный объект, размера 17. Почему?
источник

UT

Unknown T. in supapro.cxx
Плюсы иногда просто поражают своей логикой.. Может нужно определить конструктор копирования/оператор =?
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Unknown T.
Добрый вечер. Есть код:
auto arr = Array<int>();

std::cout << "FLAG 1 \n";
arr = Array<int>(17);
std::cout << "FLAG 2\n";

Между флагом 1 и флагом 2 вызывается деструктор, но вызывается он после конструктора, и деструкцирует только что созданный объект, размера 17. Почему?
У тебя вызывается деструктор для временного объекта
Array<int>(17)
источник

UT

Unknown T. in supapro.cxx
Aa, справедливо.. Он просто потом крашится на выполнении деструктора arr, потому что не была выделена память, похоже, что при = не переносится внутренний массив, только примитивные переменные
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Unknown T.
Aa, справедливо.. Он просто потом крашится на выполнении деструктора arr, потому что не была выделена память, похоже, что при = не переносится внутренний массив, только примитивные переменные
Если внутренний массив это поинтер, то копируется поинтер
источник

UT

Unknown T. in supapro.cxx
Но тот поинтер же удалился деструктором внутреннего объекта
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Ага
источник

UT

Unknown T. in supapro.cxx
вот это мудрый код я написал, конечно. И что в таком случае делать?
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Копировать содержимое поинтера
источник

UT

Unknown T. in supapro.cxx
в конструкторе копирования?
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Unknown T.
в конструкторе копирования?
В вашем случае еще в операторе присваивания
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Если что есть удобная идиома copy and swap для таких случаев
источник

UT

Unknown T. in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
В вашем случае еще в операторе присваивания
Так я вот не очень понимаю, что выполняется во фрагменте auto arr = Array<int>(); -- конструктор копирования или оператор присваивания ?
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Unknown T.
Так я вот не очень понимаю, что выполняется во фрагменте auto arr = Array<int>(); -- конструктор копирования или оператор присваивания ?
Конструктор
источник

TS

Till Schneider in supapro.cxx
Unknown T.
Так я вот не очень понимаю, что выполняется во фрагменте auto arr = Array<int>(); -- конструктор копирования или оператор присваивания ?
Array& operator=(Array&&);
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Till Schneider
Array& operator=(Array&&);
Ты уверен?
источник

TS

Till Schneider in supapro.cxx
cpp code:
struct A {
  A() {}
  ~A() {}
  A(const A&) {}
  A(A&&) {}
  A& operator=(const A&) { return *this; }
  A& operator=(A&&) {
     puts("yes");
     return *this;
  }
};

A a;
a = A();


output:
yes
источник

АК

Александр Караев... in supapro.cxx
Unknown T.
Так я вот не очень понимаю, что выполняется во фрагменте auto arr = Array<int>(); -- конструктор копирования или оператор присваивания ?
Эквивалент Array<int> arr;
источник