Проблема с инициализацией std:: или std::C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблема с инициализацией std:: или std::

Сообщение Anonymous »


Я написал класс, в котором использую typedef для определения нового типа списка, а в private: инициализирую/объявляю вектор. Ни список, ни вектор не инициируются, несмотря на то, что файлы заголовков для каждого из них включены. Когда я ссылаюсь на любой из разделов кода, он возвращает ошибку 'myList' не является членом 'myAttribute'

Это код, который у меня сейчас есть:

в заголовочном файле «headerfile.h»

пространство имен MyServiceNamespace { структура { двойной j; интервал с; } Структура; атрибуты класса ServicesAttributes { публика: Атрибуты Сервисов(); виртуальный ~ServicesAttributes(); int madeAdd(int a, int b) {return a + b; }; частный: интервал а, б; }; } и в файле MyAttribute (с которым у меня проблемы)

#include #include #include пространство имен myAttribute { класс myAttributeClass: public MyServiceNamespace::ServicesAttributes { публика: typedef std::list myList; мойАтрибутКласс(); виртуальный ~myAttributeClass(); /* функции класса*/ частный: мой список список; std::vector helperStructAttribute; }; // класс myAttributeClass } // пространство имен myAttribute (имена переменных изменены, поскольку они не имеют смысла вне контекста источника)

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

Я пробовал использовать просто массив, но столкнулся с той же проблемой, что и список и вектор. Я также пытался объявить список как typedef std::list(myList), но это все равно возвращает ошибку 'myList' не является членом 'myAttribute' >

Когда я меняю тип вектора на просто int вместо структуры, объявленной где-то еще, вектор работает нормально.

ИЗМЕНИТЬ Я добавил лучший код для поддержки этого вопроса (все, кто его комментировал, были правы, я был недостаточно осторожен и не добавил достаточно информации). Однако: я исправил проблему, которая у меня возникла. Файлу не удалось найти файл headerfile.h из-за проблемы с путем включения. Хотя мне бы хотелось знать, как это привело к тому, что std::list не работает, я, вероятно, буду держать это закрытым для ответов. Спасибо всем за ваши быстрые ответы и отзывы.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»