|
4 / 4 / 0
Регистрация: 20.07.2018
Сообщений: 279
|
|||||||||||
New для класса14.06.2022, 11:54. Показов 1339. Ответов 20
Здравствуйте, интересует такой вопрос: в чем отличие этих записей:
0
|
|||||||||||
| 14.06.2022, 11:54 | |
|
Ответы с готовыми решениями:
20
Создание экземпляра класса-наследника для переменной с типом базового класса
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 14.06.2022, 12:09 | ||
|
1
|
||
|
Модератор
|
|||
| 14.06.2022, 14:28 | |||
|
_lUserl_, и:
1. cl - это локальная переменная с типом Class, и находится на стеке программы !2. cl - это локальная переменная с типом Class*, и находится на стеке программы ! Но ее значение именно адрес зоны памяти на куче, размер которой равен размеру типа Class .
1
|
|||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 14.06.2022, 15:27 | ||
|
2) Расходы памяти. Без new выделяется sizeof(Class) байт, плюс-минус несколько байт на выравнивание. Но память выделяется из стека, в котором по сегодняшним реалиям порядка нескольких мегабайт (а сколько точно - хрен его знает). Через new - выделяется не меньше sizeof(Class), а по факту может и вдвое больше (так быстрее "по техническим причинам"). Зато, нет вышеупомянутого лимита в несколько мегабайт.
0
|
||
|
Неэпический
|
|
| 14.06.2022, 16:32 | |
|
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 14.06.2022, 17:23 | ||
|
Далеко не факт что данные автоматического объекта будут положены на стек. Например, в некоторых случаях значение полей могут быть помещены напрямую в регистры. Ну что, опять ждем десять страниц? )Так то против ничего не имею ))
0
|
||
|
"C with Classes"
|
|
| 14.06.2022, 17:43 | |
|
Undisputed, либо в регистр либо в память (ОЗУ), о чем тут говорить вообще?
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 14.06.2022, 17:48 | |
|
Сколько там этих регистров то, 128 если сильно повезет? В контексте переполнения стека, это капля в море. А в контексте ускорения выделения памяти - экономия одной операции смещения ESP. Плюс, при вызове вложенных функций содержимое регистров все равно будет сброшено в стек. А вот разница между временем создания массива на стеке и создания того же массива в куче уже существенна.
1
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||
| 14.06.2022, 18:13 | |||
|
Не по теме:
Иногда на этом форуме какой нибудь ТС задает вопрос, а в итоге тема переходит в бурное обсуждение того, что этот ТС не понимает. Ближе к середине про ТС все забывают и он куда-то исчезает :) Много раз тут такое видел и сам даже принимал участие)) Я к тому что работа с памятью это большая тема, а не просто new/delete это на стеке то в куче... вот к чему я упомянул про 10 страниц т.к вижу у людей желание подробно разобрать эту тему. Но как уже говорил, если кому интересно - то пожалуйста Добавлено через 11 минут _stanislav, Видишь)) из одной цитаты уже несколько постов получилось, возможно будет продолжение, не знаю... )) А ты еще спрашивал говорил о чем тут говорить
1
|
|||
| 14.06.2022, 18:36 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 14.06.2022, 18:42 | |
|
0
|
|
|
"C with Classes"
|
|
| 14.06.2022, 18:44 | |
|
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||
| 14.06.2022, 18:54 | |||
|
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||||||
| 14.06.2022, 19:13 | ||||||||||||||||||
|
использование терминов не по назначению - тернистый путь. принципиально, что переменные, которые объявлены в глобальной области видимости, либо в области видимости ед. трансляции, являются статическими. можно так:
0
|
||||||||||||||||||
|
"C with Classes"
|
|
| 14.06.2022, 19:16 | |
|
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 14.06.2022, 19:20 | ||
то сообщение было не про классы памяти, а про то что аллокатор трогать не нужно
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 14.06.2022, 19:46 | |||
|
в первом случае - создание автоматического, либо статического объекта. во-втором - создание динамического объекта. а вот кардинально - временем жизни: - статический: до конца жизни процесса. - автоматический: до конца своей области видимости. - динамический: пока явным образом не будет запрошено удаление. (не обязан помирать даже по факту завершения работы процесса) зы: в с++ есть ещё и thread_local: собственность отдельного треда. объект живет столько, сколько живет породивший его поток. а так же могут быть разного рода unspecified классы хранения. например: брошенный эксепшен живет пока его кто нибудь не поймает, либо все приложение не упадет от необработанного исключения. где, при этом, все это время находится объект - этого язык не уточняет.
0
|
|||
|
Неэпический
|
|
| 14.06.2022, 20:33 | |
|
0
|
|
| 14.06.2022, 20:33 | |
|
Помогаю со студенческими работами здесь
20
Создать объект класса Card как поле для класса Menu
Разрешить доступ к методу класса только для другого класса Перегрузка оператора >> для дочернего класса от базового виртуального класса Реализовать свойства для класса. Все методы класса оставить без изменения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|