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

 
 
> C++ создание экземпляра класса внутри класса
plombir
сообщение Jun 2 2009, 12:11
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191



Добрый день!

IAR 5.10A, AVR
Есть два класса AT45LOG и CRC16. Первый наследует ещё один. Можно ли, если да, то как, объявить класс CRC16 внутри класса AT45LOG, чтобы при создании его экземпляра создавался и экземпляр CRC16?
Сейчас сделано так, что AT45CRC объявлен глобальным. Хочется от этого избавиться.
На множественное наследование IAR ругается "Error[Pe882]: Embedded C++ does not support multiple or virtual inheritance..."

Код
class CRC16 AT45CRC(0xFFFF, 0x1021); //избавиться от этой строчки

class AT45LOG : public AT45
{
    ...
};

class CRC16
{
    public:
    CRC16(unsigned int init, unsigned int polinom);
    ~CRC16();
    ...
};
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
plombir
сообщение Jun 3 2009, 17:58
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191



И всё таки поясню. Проблема у меня была не в ошибке иерархии классов, а немного в другом.

Есть простая аксиома: формулирование правильного вопроса – половина ответа. В идеале, правильно заданный вопрос, в этой теме, должен быть таким: "Какой синтаксис используется в IAR для вызова конструктора базового класса?"

Это сейчас мне данный вопрос понятен и прозрачен. Ещё раз, спасибо всем, кто откликнулся и помог. Хотя, если утрированно исходить из того, что класс, это та же структура, то за каким "лесом" разработчики Си впихнули создание базового экземпляра в заголовок конструктора. Логичнее в теле конструктора совершать подобные манипуляции, и двигаться последовательно сверху вниз создавая требуемые объекты.

Но, если я в своём вопросе применил бы слово «синтаксис», то, с большой вероятностью, был бы мягко аутлуплен к книгам, в которых разжевываются подобные цитаты: "One of the clearest ways to determine whether…" без примеров.

Теперь, после ответов форумчан Палыч и Сергей Борщ, я могу с легкостью в гугле найти нужные примеры для ответа на мой вопрос.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:34
Рейтинг@Mail.ru


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