Проблема с инициализацией std:: или std::
⇐ C++
-
Anonymous
Проблема с инициализацией std::
Я написал класс, в котором использую 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 не работает, я, вероятно, буду держать это закрытым для ответов. Спасибо всем за ваши быстрые ответы и отзывы.
- или std::
Я написал класс, в котором использую 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 не работает, я, вероятно, буду держать это закрытым для ответов. Спасибо всем за ваши быстрые ответы и отзывы.
Мобильная версия