У меня есть заголовочный файл, определяющий некоторые параметры. Я определил некоторые параметры как внешние. Моя программа отлично работает с другими типами данных, такими как double и int, за исключением случаев, когда я пытаюсь добавить векторные переменные. Объявление в заголовочном файле:
extern std::vector<double> my_vec;
В моем основном файле я строю вектор, используя этот код:
std::vector<double> my_vec(3,0);
Когда я пытаюсь очистить вектор, используя метод clear, компилятор выдает ошибку, сообщающую, что неизвестный тип. Я даже не уверен, как отладить это. Может кто-нибудь помочь?
P.S. Первоначально я пытался присвоить некоторые значения этому вектору, используя:
my_vec[0] = 1;
но компилятор говорит, что C ++ требует спецификатора типа для всех объявлений. Я погуглил эту ошибку, но я не понимаю, потому что я указываю тип my_vec.
Редактировать: пример:
main.cpp
#include "params.h"
#include <vector>
std::vector<double> my_vec(3,0);
my_vec.clear();
// edit: my_vec[0] = 1; this also produces an error
int main(){
return 0;
}
params.h
#include <vector>
extern std::vector<double> my_vec;
Сообщение об ошибке:
main.cpp:6:1: error: unknown type name 'my_vec'
my_vec.clear();
^
main.cpp:6:7: error: cannot use dot operator on a type
my_vec.clear();
^
2 errors generated.