好的,我在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/