Перейти к содержанию
    

С++ Наследование классов в CCS5.

Смотрю map файл в секции text.

Есть базовый класс 4 КБ.

Дочерний класс 5 КБ , а он содержит буквально несколько нехитрых строк.

Получается, что дочерний включил в себя ВЕСЬ код родителя.

 

Что-то я не понимаю ООП на микроконтроллерах. Как так?

Получается написал пять строк и забил всю память.

Как заставить компилятор видеть, что основная часть кода одинакова у родителя и потомка?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

все же, как вы выяснили размер кода, обслуживающего класс? Есть ли оптимизация? функции методы наследованы виртуально (хотя это значения не должно иметь)? Листинг?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при наследовании в плюсах, потомок включает весь код родителя, дополняя его своими методами, полями и т.д. Ничего не поделаешь, разве что сделать больше приватных методов, включить -О3, возможно вызывать функции при помощи расширения, т.е. Class:function1();

На плюсах не пишу, больше ничем не могу помочь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при наследовании в плюсах, потомок включает весь код родителя, дополняя его своими методами, полями и т.д. Ничего не поделаешь

При этом исполняемый код не должен раздуваться. Т.е. если класс имеет функций-членов на 4 кбайта и его наследник вводит ещё своих пару, то общий объём кода должен увеличиться только на эти пару функций - остальные наследник будет использовать из базового. А у ТС аномалия, по его словам, - добавил наследник и код увеличился в два раза.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...