реклама на сайте
подробности

 
 
> __no_init и конструктор в С++
jorikdima
сообщение Jan 19 2011, 21:00
Сообщение #1


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Приветствую.
Есть некий класс, который содержит в качестве полей большие массивы. Кроме того, есть и другие поля, которые надо инициализировать и есть рукописный конструктор, который готов провести эту инициализацию. Так как массивы инитить необязательно, то есть большое желание сократить код прошивки путем отказа от дефолтовой инициализации этих больших буферов (прошивка сокращается на объем равный размеру буферов, так как инициализирующий массив, который переписывается в РАМ в стартапе попросту отсутствует). Я обнадежился, надеясь добавить __no_init в описание поля класса, но конечно не прокатило, так как эта директива касается только объектов целиком. Тогда я объявил весь объект (глобальный) моего класса __no_init, а инициализацию нужных мне полей добавил явно в коструктор, прошивка сократилась, но конструктор не вызывается. Почему отсутствие инициализации всех полей класса приводит и к отказу вызывать конструктор (просто функция по сути)? Можно как-то выкрутиться из ситуации? А то очень уж хочется ничего не делая сократить прошивку на четверть.
Спасибо.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 15:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01347 секунд с 7
ELECTRONIX ©2004-2016