Свързани въпроси 'new-operator'

Присвояване на оператор new() към указател на функция?
Опитвам се да дефинирам клас, който може да получи функция за разпределение на обекти и приема оператора new() на шаблонния обект като аргумент по подразбиране. Имам следния код: template<class _Obj> class Foo { private: typedef _Obj...
1081 изгледи
schedule 19.09.2022

Създаване на нов възел за двоично дърво за търсене
За училищен проект се опитвам да направя двоично дърво за търсене в същото време, когато трябва да научим как да използваме „приятелство“ в класовете. Грешките, които получавам, докато компилирам, са: [Поставям коментари в кода, откъдето идват...
2161 изгледи

Замяната на изтриване на C++ оператор не винаги се използва
Имам някои C++ модулни тестове, използвайки google test. Събрахме малко код, за да заменим операторите new/delete, за да проверим за течове в тестовете на модула. Все пак има проблем. Някои от google test new/deletes използват моите заменени...
321 изгледи

Какво е това второ ново?
Коя е втората линия? (Вижда се, докато отговаряте на друг въпрос.) int * x = new int [1] ; int * y = new (x) int; След втория ред x и y имат еднаква стойност (сочат към едно и също място). Каква е разликата между y = x и втория ред? Като...
473 изгледи

Как C++ освобождава паметта, когато конструктор хвърля изключение и се използва персонализирано ново
Виждам следните конструкции: new X ще освободи паметта, ако X конструкторът хвърли. operator new() може да бъде претоварен. Каноничната дефиниция на оператор ново претоварване е void *operator new(size_t c, heap h) и...
2349 изгледи

Каква е разликата между новия оператор и Class.newInstance()?
Каква е разликата между оператора new и Class.forName(...).newInstance() ? И двамата създават екземпляри на клас и не съм сигурен каква е разликата между тях.
27115 изгледи
schedule 01.01.2024

Защо new не изисква преобразуване към указателя, въпреки че malloc го изисква?
Дефиницията на new в заглавката ‹new> е: void* operator new(size_t); И дефиницията на malloc е както е посочено: void* malloc(size_t); Сега, тъй като C++ е строго типизиран език, той изисква преобразуване от програмиста, за да...
371 изгледи
schedule 22.01.2024

какво не е наред с персонализирания разпределител в C++?
Bjarne Stroustrup в своята книга The C++ Programming language казва, че: Съвет: Помислете два пъти, преди да напишете свой собствен разпределител Какво иска да каже Bjarne с горния съвет? Какви са проблемите, които могат да възникнат, ако...
159 изгледи
schedule 20.11.2022

Какъв е пълният списък с действия, извършвани от placement new в C++?
В този въпрос създаване фабричен метод, когато компилаторът не поддържа new и поставянето new се обсъжда. Очевидно някое подходящо решение може да бъде създадено с помощта на malloc(), ако всички необходими стъпки, извършени от поставянето...
1049 изгледи
schedule 12.02.2024

Как да създам екземпляр на черта в общ метод в scala?
Опитвам се да създам екземпляр на черта, използвайки този метод val inst = new Object with MyTrait Това работи добре, но бих искал да преместя това творение във функция за генериране, т.е. object Creator { def create[T] : T = new Object...
8246 изгледи
schedule 19.03.2024

Принудително претоварване на new/delete за наследяващи класове
Имам доста предизвикателство (може би само за мен). Имам няколко класа, които наследяват от някакъв базов клас A. Всички тези класове трябва да претоварват операторите new и delete. Засега претоварих new/delete в клас A, за да върна съобщение за...
44 изгледи