Visual Studio 无法确定全局变量的类型

Visual studio cannot determine the type of my global variables

本文关键字:类型 全局变量 无法确定 Studio Visual      更新时间:2023-10-16

我所拥有的是:

    #include "thread.h"
    #include <iostream>
    #include <fstream>
    #include <vector>
    #include <string>
    using namespace std;
    vector<Requester*> requesters; //global
    struct Requester {
       vector<thread> t;
       vector<int> tracks;
    };

然后在我的函数中,我有:

void serviceQ(){
  vector<Requester*> test = requesters; //error
}

错误是:

no suitable user-defined conversion from "std::vector<<error-type> *, std::allocator<<error-type> *>>" to "std::vector<Requester *, std::allocator<Requester *>>" exists

我很困惑为什么会这样。为什么它在函数中将我的全局变量称为错误类型?如果我要做这样的事情:

void serviceQ(){
      vector<Requester*> test; 
      //do some stuff
      vector<Requester*> result = test; //no error
    }

那么就没有错误了。

你需要定义

vector<Requester*> requesters; //global

定义struct Requester之后,否则编译器在尝试定义相应的vector<Requester*>时不知道Requester*是什么意思。或者,您可以直接声明

struct Requester;

vector<Requester*> requesters;行上方。