一个班级内的结构

hak*_*a12 -3 c++ structure class

我有一个私人结构的课程.如何访问该结构的数据成员?

  class ClassStruct
  {
  private:
     struct Struct
     {
        std::string time;
        int temp;
     };
  public:
     ClassStruct();
  };
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

struct Struct o;
ClassStruct object;
cout << "Enter time (hh:mm): ";
cin >> object.o.time;
Run Code Online (Sandbox Code Playgroud)

但它在"o"上显示错误.

Den*_*nis 5

您只能在声明的类实现中访问此结构.在您的示例中,您可以访问它的唯一位置是构造函数ClassStruct.

编辑试图解释人们问你的问题:

在ClassStruct.h中:

class ClassStruct
{
private:
   struct Struct
   {
      std::string time;
      int temp;
   };
public:
   ClassStruct();
   void test(){
     Struct good; // This will work.
     good.temp = 5;
   }
};
Run Code Online (Sandbox Code Playgroud)

在ClassStruct.cpp中

ClassStruct::ClassStruct(){
   Struct alsoGood;
   std::cout << "Also Good Here" << std::endl;
}

void nonClassFunction(){
  ClassStruct::Struct bad; // compiler error
}
Run Code Online (Sandbox Code Playgroud)

在AnyOther.cpp中

void wontWork(){
  ClassStruct::Struct alsoBad; // compiler error.
}
Run Code Online (Sandbox Code Playgroud)