Ошибка C2061: синтаксическая ошибка: идентификатор ‘string’

Вопрос:это, вероятно, проблема включения, я получаю эти ошибки по всему коду, а не только для идентификатора строки, например error C2146: syntax error : missing ';' before identifier 'getName' и error C2146: syntax error : missing ';' before identifier 'name' здесь пример класса: #include "stdafx.h" class participant { public: participant(int id, string name); ~participant(void); int getId();

Вопрос:

это, вероятно, проблема включения, я получаю эти ошибки по всему коду, а не только для идентификатора строки, например error C2146: syntax error : missing ‘;’ before identifier ‘getName’ и error C2146: syntax error : missing ‘;’ before identifier ‘name’

здесь пример класса:

#include «stdafx.h» class participant { public: participant(int id, string name); ~participant(void); int getId(); string getName(); private: int id; string name; };

вот мой stdafx.h файл:

#pragma once #include «targetver.h» #include <stdio.h> #include <tchar.h> #include <iostream> #include <string> #include <sstream> #include <vector> #include <list> #include «day.h» #include «appointment.h» #include «extendedAppointment.h» #include «participant.h» #include «calendar.h» using namespace std; #define no_such_appointment_error 20; #define conflicting_appointments_error 21; #define noSuchDayError 22; #define incorrectAppointmentError 23; Лучший ответ:

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

#include «day.h» #include «appointment.h» #include «extendedAppointment.h» #include «participant.h» #include «calendar.h»

Это может быть макрос, класс/структура не оканчивается точкой с запятой и т.д. Проверьте их.

Наконец, несколько тангенциальных проблем:

Во-первых, using пространство имен в файле заголовка – ужасная идея. Любой файл, который содержит ваш заголовок, теперь имеет using namespace std; в нем (это плохо). Вероятно, вы не хотите включать в него много файлов заголовков, в которые входит stdafx.h.

Во-вторых, после удаления, тогда string сразу становится undefined (вместо этого используйте std::string).

Наконец, почему ваш #define закончился полуколонами? Нет необходимости в этом.

Оцените статью
Добавить комментарий