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

 
 
> C++ в микроконтроллерах, посветите безграмотного.
-=Sergei=-
сообщение Mar 17 2008, 09:20
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 339
Регистрация: 26-10-04
Пользователь №: 985



Имеем ARM Cortex-M3.

Ядро за командами лазит в флеш через шину Icode, за данными через system в ОЗУ. Конфликтов нет, работаем быстро.

я создаю некий объект обладающий свойствами и функциями. Он создается в ОЗУ. Т.е. теперь если я начну выполнять некую функцию объекта, то теперь и за командами и за данными ядро будет лазить в ОЗУ, возникают конфликты и их разрешение снижает производительность. Или я не праивльно понимаю создание объекта? Код функций объекта все так же будет распалагаться во Флеш а свойства в ОЗУ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IgorKossak
сообщение Mar 18 2008, 08:42
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



С объектами производных классов тоже не просто.
Даже если нет private членов как проинициализировать следующий объект?
Код
class cls
{
    public:
        virtual int foo(void) const = 0;
};

class boo : public cls
{
    public:
        int a;
        int b;
        int foo(void) const;
};

extern const boo b;

const boo b =????;
Go to the top of the page
 
+Quote Post
dxp
сообщение Mar 18 2008, 12:58
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(IgorKossak @ Mar 18 2008, 14:42) *
С объектами производных классов тоже не просто.

Если класс производный, он уже не POD со всеми вытекающими - агрегатные инициализаторы к нему нельзя применять.

Цитата(KRS @ Mar 18 2008, 15:02) *
Так я и написал что реально просто структура с методами. Но я предпочитаю писать как class что бы отличать от просто структур, которые не имеют методов. К тому же это не совсем POD - потому что метод foo там есть и совместимости с С уже нет.

POD - это не совместимость с С, это типы, которые попадают под ряд правил и их поведение и применимость наболее близки к С-типам. Например, объекты POD типов можно копировать с помощью memcpy, а не-POD типов - нельзя и т.д. Но совместимость тут не причем. Наличие функции-члена (не метода, кстати) не мешает типу оставаться POD. А вот наличе метода (виртуальной функции) как раз делает его (тип) не POD.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post



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

 


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


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