两个 MYSTRUCT是不同类型的
class CMyClass{
protected:public:
    struct MYSTRUCT
    {
        double x1;
        double x2;
        double xn;
    } mMyStruct1;
    void setStruct(MYSTRUCT _mMyStruct1)
    {
        mMyStruct1 = _mMyStruct1;
    }    void getStruct(MYSTRUCT &_mMyStruct1)
    {
        _mMyStruct1 = mMyStruct1;
    }
};void main()
{
    CMyClass mMyClass;    CMyClass::MYSTRUCT mMyStruct2 = {1.0, 2.0, ... , n};    mMyClass.setStruct(mMyStruct2);}

解决方案 »

  1.   

    定义了两个不同的 struct,当然会出错
      

  2.   

    两个struct的名称虽然一样,但其有效空间不同,类中定义的结构必须通过类限定符来引用
      

  3.   

    谢谢先!如果类中的结构MYSTRUCT是私有的,该怎么访问?
      

  4.   

    如果设计上有这样的需求,非得用私有的,那么试试将main函数设为CMyClass的友元。
      

  5.   

    main中就不要定义结构了,在类中要定义为public成员才能让外部使用,使用时用类名::结构名。