2015-07-09 3 views
0

Я пытаюсь установить симулятор. При попытке скомпилировать исходные файлы, я получаю сообщение об ошибке в заголовке из приведенного ниже кода.только конструкторы принимают инициализаторы членов

#include "core.hpp" 
core::core(const pe_id &id, const uint64_t &t, 
      shared_ptr<id_factory<packet_id> > pif,shared_ptr<tile_statistics> st, 
      logger &l, shared_ptr<random_gen> r, shared_ptr<memory> mem, 
      uint32_t number_of_core_msg_types, uint32_t msg_q_size, uint32_t 
      bytes_per_flit) throw(err) : pe(id), system_time(t), stats(st), log(l), ran(r), 
      m_msg_queue_size(msg_q_size), m_bytes_per_flit(bytes_per_flit), 
      m_memory(mem), m_packet_id_factory(pif), 
      m_receive_channel_round_robin_pointer(0), m_send_queue_round_robin_pointer(0) 
{ 
    m_number_of_msg_types = number_of_core_msg_types + mem->number_of_mem_msg_types(); 
    m_first_core_msg_type = mem->number_of_mem_msg_types(); 
    for (uint32_t i = 0; i < m_number_of_msg_types; ++i) { 
    m_in_msg_queues[i] = shared_ptr<messageQueue> (new messageQueue(i, m_msg_queue_size)); 
    m_out_msg_queues[i] = shared_ptr<messageQueue> (new messageQueue(i, m_msg_queue_size)); 
} 
    m_memory->set_core_send_queues(m_out_msg_queues); 
    m_memory->set_core_receive_queues(m_in_msg_queues); 
} 

Я также прикрепляю объявление основного класса из файла заголовка. Похоже, что core :: core - это конструктор, но все же я получил вышеупомянутую ошибку.

class core : public pe { 
public: 
core (const pe_id &id, const uint64_t &system_time, 
    shared_ptr<id_factory<packet_id> > packet_id_factory, 
    shared_ptr<tile_statistics> stats, logger &log, 
    shared_ptr<random_gen> ran, 
    shared_ptr<memory> mem, 
    uint32_t number_of_core_msg_types, uint32_t msg_queue_size, uint32_t m_bytes_per_flit) throw(err); 
virtual ~core() throw(); 

Любые данные по этому вопросу?

+3

Не связанный с вашим вопросом, но я бы сказал, что чрезмерное количество аргументов для любой функции - плохой запах кода/дизайна. –

+0

На какой строке вы получаете сообщение об ошибке? –

+0

Он находится в строке 6. – user2101772

ответ

Смежные вопросы