Ошибка: ожидаемый неквалифицированный идентификатор перед const

Я видел несколько вопросов по этой ошибке, но у меня нет большого опыта в создании класса на C++, поэтому я не понимаю, что означают ответы. Я должен также указать, что я не писал этот код.

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

Вот файл:

#ifndef _QUICKTIMER_H_
#define _QUICKTIMER_H_

#include <cstdlib>
#include <string>
#include <chrono>

class QuickTimer {
public:
  QuickTimer(const std::string& prefix = "");
  ~QuickTimer();
private:
  std::chrono::high_resolution_clock::time_point mStartTime;
  const std::string mPrefix;
};

#endif

и полные ошибки:

error: expected unqualified-id before ‘const’
 QuickTimer(const std::string& prefix) :
            ^  

error: expected ‘)’ before ‘const’

error: declaration of ‘~QuickTimer’ as non-member
 ~QuickTimer()
             ^

Если бы кто-нибудь мог объяснить мне, что это значит и что происходит, я был бы очень признателен, спасибо!

1 ответ

Решение

Префикс имени класса, вероятно, отсутствует в определении вашего конструктора и деструктора. У вас должно быть что-то подобное в файле cpp:

QuickTimer::QuickTimer(const std::string& prefix)
{
}

QuickTimer::~QuickTimer()
{
}
Другие вопросы по тегам