Я создаю глобальную переменную класса в заголовочном файле, в котором созданы все глобальные переменные. И я определяю это в основном. Вот пример: в listVariables.h:
#include <vector>
#include <algorithm>
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <string>
#include <fstream>
#include <locale>
using namespace std;
#include "dbSlice.h"
extern vector<dbSlice_str> dbSlice;//from dbSlice header i am creating the global variable
В main. cpp я определяю переменную:
#include "listVariables.h"
vector<dbSlice_str> dbSlice;
в dbSlice. cpp я создаю глобальную функцию, которая создает переменную и добавляет ее в вектор:
#include "dbSlice.h"
#include "listVariables.h"
#include "listFunctions.h"//where i declare the init_slice() function
void init_slice()
{
dbSlice.push_back(dbSlice_str());
dbSlice_str* slice;
slice = new dbSlice_str();
slice->name = "embb";
slice->connected_users = 0;
slice->client_weight = 100; //100% des ressources
slice->priority = 10;
slice->SST = 0;
slice->preemt = false;
slice->slice_ratio = 100;
dbSlice.push_back(*slice);
}
Затем я вызываю функцию init_slice () в main (). Это дает мне ошибки, связанные с объявлением переменной, которую я не могу решить:
Error C2065 'dbSlice_str' : iidentifier not declared in listVariables.h
Error C2923 'std::vector' : 'dbSlice_str 'is not a valid model argument for the' _Ty 'parameter in listVAriables.h
Error C3203 'allocator' : non-specialized model class cannot be used as a model argument for the model parameter '_Alloc'; expected real type in listVariables.h
Error C2663 'std::vector<_Ty,_Alloc>::push_back' : 2 overloads have no conversion allowed for the 'this' pointer in dbSlice.cpp
Не могли бы вы помочь мне с этим?
спасибо.