是这样的:
结构体AA
typedef struct AA
{
    int x;
    vector<BB> v_BB;
}AA;结构体BB
typedef struct BB
{
     int y;
     vector<CC> v_CC;
}BB;结构体CC
typedef struct CC
{
     int Z;
}CC;执行语句:
AA aa; BB bb; 
aa.v_BB.push_back(bb);此时出错。
出错信息:error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'求教各位,我应该怎么办?最好给个简单的代码。非常非常感谢!vector结构体

解决方案 »

  1.   

    struct BB;
    typedef struct AA
     {
         int x;
         vector<BB> v_BB; 
    }AA;
     
      

  2.   

    我源代码是声明了的,这里不是声明的问题,以上代码 我只是写了几个关键的东西出来。如果我注释掉结构体BB里边的vector<CC> v_CC;就不会出问题,但是我必须要用vector<CC> v_CC;没办法。
    typedef struct BB
    {
         int y;
         //vector<CC> v_CC;
    }BB;问题是 一个结构体AA里边 有一个vector,该vector里边存的是另一个结构体BB。而该结构体BB里边有一个成员又是vector。所以出错。
    继续求教!
      

  3.   

    vs2005测试,没有任何问题,应该是你的结构声明顺序有问题或者头文件包含问题:
    #include <vector>struct C
    {
    int c;
    };struct B 
    {
    std::vector<C> m_vecC;
    };
    struct A 
    {
    std::vector<B> m_vecB;
    };int _tmain(int argc, _TCHAR* argv[])
    {
    A a;
    B b;
    C c;

    b.m_vecC.push_back(c); a.m_vecB.push_back(b);
    return 0;
    }
      

  4.   

    我这里结构体顺序是写错了,先cc,再bb,再aa。我程序里边是对的。但是编译还是那样 vs2010 
      

  5.   

    实在不好意思,各位,我这里少写了一句,就是在结构体CC里边有一个CStringArry m_arry;  我认为不是它的原因就没写,结果我发现应该是它的原因。 不知道对不对。如果是,应该怎么解决