调用自定义类中的结构体数组时出现如下异常,如何解决

调用自定义类中的结构体数组时出现如下错误,怎么解决
 自定义类Public.h中的部分代码如下

#include <string>
#include <vector>
using namespace std;
static struct fileshuxing //定义结构体
{
 int FuMuLuCangKaoHao;    
 string FileName;  

};
 vector<fileshuxing>SXList; //定义结构体动态数组


在cpp文件中的部分代码如下:

#include "Public.h"
#include <vector>
using namespace std;
CPublic::fileshuxing TempShuXing; //定义结构体变量
TempShuXing.FuMuLuCangKaoHao=1;
TempShuXing.FileName="aaa";
CPublic::SXList.push_back(TempShuXing);


运行后提示如下错误 ,请大家帮忙看看 ,
error C2228: left of '.push_back' must have class/struct/union type

------解决方案--------------------
把下面这句代码放到cpp文件中就是初始化了
std::vector<fileshuxing> CPublic::SXList;
 
------解决方案--------------------
struct fileshuxing 是定义在类CPublic的外面还是定义在类内部的(嵌套类)
你用 CPublic::fileshuxing TempShuXing 怎么回事?