首页 > 解决方案 > C++中未声明的标识符

问题描述

我正在创建所有全局变量的头文件中创建一个类的全局变量。我主要定义它。这是示例:在 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);
}

然后我在 main() 中调用 init_slice() 函数。它给了我与我无法解决的变量减速有关的错误:

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

你能帮我解决这个问题吗?

谢谢你。

标签: global-variablesdeclaration

解决方案


推荐阅读