#c #g #compiler-errors
#c #g #ошибки компилятора
Вопрос:
Когда я перехожу к компиляции этого кода, он говорит, что ожидал неквалифицированный идентификатор перед ) в моем конструкторе
analysis2.h:
#ifndef _ANALYSIS2_H
#define _ANALYSIS2_H
class Analysis2{
public:
Analysis2();
...
analysis2.cpp:
#include "analysis2.h"
using namespace std;
Analysis2()
{
Seconds_v = 0;
Seconds_t = 0;
}
...
Как мне это исправить?
Комментарии:
1. Да, в GCC действительно есть несколько вводящих в заблуждение сообщений об ошибках.
2. Что вы хотите, чтобы это сказало? У него нет способа узнать, что вы пытаетесь определить конструктор.
3. @Etienne На самом деле это очень описательно, в нем говорится, что идентификатор перед
)
токеном является неквалифицированным. Исправление заключается в том, чтобы указать идентификатор перед)
токеном. В нем точно сказано, в чем проблема, что еще он может сказать?
Ответ №1:
В analysis2.cpp
вам нужно сообщить компилятору, что вы определяете конструктор, указав ему область видимости:
Analysis2::Analysis2()
{
Seconds_v = 0;
Seconds_t = 0;
}
Комментарии:
1. Вау. Не могу поверить, что я забыл это. Спасибо!
2. @mrswmmr это случается с лучшими из нас
Ответ №2:
В analysis2.cpp
запишите это:
Analysis2::Analysis()
{
Seconds_v = 0;
Seconds_t = 0;
}
Вы должны включить имя класса ( Analysis2::
).
Ответ №3:
Тип
Analysis2::
перед именем метода или конструктора / деструктора
Ответ №4:
Вам нужно указать, Analysis2::Analysis2()
пытаетесь ли вы определить конструктор. В противном случае компилятор предполагает, что Analysis2
это имя типа в объявлении чего-то другого.