Asa*_*han 2 c++ getter setter struct
好的,我在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
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我该如何写我的getter或setter?
structName是类型名称的一部分,而不是变量名称.你需要给它一个名字,比如:
struct structName {
int someStructVariable;
int someOtherStructVariable;
} myStructure;
Run Code Online (Sandbox Code Playgroud)
然后在您的访问者中使用:
return myStructure.someStructVariable;
Run Code Online (Sandbox Code Playgroud)
这应该会得到你想要的结果.结构变量的其他替代方法是将结构定义与变量声明分开:
struct structName {
int someStructVariable;
int someOtherStructVariable;
};
struct structName myStructure;
Run Code Online (Sandbox Code Playgroud)
或者加入typedef:
typedef struct structName {
int someStructVariable;
int someOtherStructVariable;
} structTypedefName;
structTypedefName myStructure;
Run Code Online (Sandbox Code Playgroud)