好的,我在C++中有这样的东西:

class MyClass{
private:
  int someVariable;
  int someOtherVariable;

  struct structName{
    int someStructVariable;
    int someOtherStructVariable;
  };//end of struct

public:
  //getters & setters for the defined variables.

  int getSomeStructVariable()
  {
    // this does not work I get this error: "error: expected primary-expression
    // before '.' token"
    return structName.someStructVariable;
  }
};//end of class

在这种情况下,我应该如何写我的 setter/getter 或 setter/getter ?

最佳答案

structName是类型名称的一部分,而不是变量名称。您需要给它起一个名字,例如:

struct structName {
  int someStructVariable;
  int someOtherStructVariable;
} myStructure;

然后在您的访问器中使用:
return myStructure.someStructVariable;

那应该给您想要的结果。结构变量的其他替代方法是从变量声明中分离出结构定义:
struct structName {
  int someStructVariable;
  int someOtherStructVariable;
};

struct structName myStructure;

或添加typedef:
typedef struct structName {
  int someStructVariable;
  int someOtherStructVariable;
} structTypedefName;

structTypedefName myStructure;

关于c++ - 在C++类中的getter setter中访问struct变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1652255/

10-17 00:19