Цитата(plombir @ Jun 2 2009, 15:11)

Можно ли, если да, то как, объявить класс CRC16 внутри класса AT45LOG, чтобы при создании его экземпляра создавался и экземпляр CRC16?
Сдается, ошибка в проектировании иерархии классов. Помните, Страуструп писал об отношениях "is-a" и "has-a". Задайте себе вопрос: является ли ваш AT45LOG CRCой? Скорее всего нет. Значит, отношение "is-a" ("является") не подходит и наследование тут неуместно. С другой стороны, на вопрос "содержит ли AT45LOG в себе CRC?" можно ответить положительно. Значит, имеет место отношение "has-a" ("содержит") и целесообразно сделать объект типа CRC членом класса AT45LOG. Как это сделать -
Палыч написал. А конструктор члена можно "пристроить" так же, как и конструктор базового класса. Надо только помнить, что сначала вызываются конструкторы всех базовых класов, потом конструкторы членов и только потом конструктор создаваемого объекта:
Код
class AT45LOG : public AT45
{
public:
AT45LOG();
private:
CRC16 CRC;
....
}
AT45LOG::AT45LOG()
: CRC(0xFFFF, 0x1021)
{
....
}