Свързани въпроси 'new-operator'
Присвояване на оператор new() към указател на функция?
Опитвам се да дефинирам клас, който може да получи функция за разпределение на обекти и приема оператора new() на шаблонния обект като аргумент по подразбиране. Имам следния код:
template<class _Obj>
class Foo
{
private:
typedef _Obj...
1081 изгледи
schedule
19.09.2022
Създаване на нов възел за двоично дърво за търсене
За училищен проект се опитвам да направя двоично дърво за търсене в същото време, когато трябва да научим как да използваме „приятелство“ в класовете. Грешките, които получавам, докато компилирам, са: [Поставям коментари в кода, откъдето идват...
2161 изгледи
schedule
17.09.2022
Замяната на изтриване на C++ оператор не винаги се използва
Имам някои C++ модулни тестове, използвайки google test. Събрахме малко код, за да заменим операторите new/delete, за да проверим за течове в тестовете на модула. Все пак има проблем. Някои от google test new/deletes използват моите заменени...
321 изгледи
schedule
20.09.2022
Какво е това второ ново?
Коя е втората линия? (Вижда се, докато отговаряте на друг въпрос.)
int * x = new int [1] ;
int * y = new (x) int;
След втория ред x и y имат еднаква стойност (сочат към едно и също място). Каква е разликата между y = x и втория ред? Като...
473 изгледи
schedule
24.10.2023
Как C++ освобождава паметта, когато конструктор хвърля изключение и се използва персонализирано ново
Виждам следните конструкции:
new X ще освободи паметта, ако X конструкторът хвърли.
operator new() може да бъде претоварен.
Каноничната дефиниция на оператор ново претоварване е void *operator new(size_t c, heap h) и...
2349 изгледи
schedule
19.12.2023
Каква е разликата между новия оператор и 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 изгледи
schedule
27.03.2024