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

 
 
> __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
 
Start new topic
Ответов
Aprox
сообщение Jan 20 2011, 06:38
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



jorikdima
Может, убрать __no_init маcсивы из состава класса, сделать их глобальными, а конструктору этого класса передавать только указатель на массив?

Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th August 2025 - 21:36
Рейтинг@Mail.ru


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