Я пытаюсь создать класс, у которого в качестве члена будет массив объектов другого класса. Этот «нижний» конструктор класса требует параметра (без c-tor по умолчанию), и я не уверен, как это сделать.
In .hpp
class ProcessingElement : public sc_core::sc_module
{
public:
ProcessingElement( sc_core::sc_module_name name );
sc_core::sc_module_name name;
};
In .cpp
ProcessingElement::ProcessingElement( sc_core::sc_module_name name ) : name(name) {
//not relevant
}
и "высший" класс:
In .hpp
class QuadPE : public sc_core::sc_module
{
public:
QuadPE( sc_core::sc_module_name name );
ProcessingElement pe[4];
};
In .cpp
QuadPE::QuadPE( sc_core::sc_module_name name ) : pe[0]("PE0"), pe[1]("PE1"), pe[2]("PE2"), pe[3]("PE3") {
//non relevant
}
Это, очевидно, приводит к ошибке, но я не уверен, как ее исправить. Я хотел бы по возможности избегать использования векторов, поэтому некоторые решения, которые я нашел на SO, которые включают векторы, не идеальны для меня.
Как примечание, sc_core::sc_module_name
- это typedef, равный const char*
или что-то подобное, к сожалению, не могу сейчас его найти.
Спасибо.