gpt4 book ai didi

c++ - 通过变量值访问结构属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:32 25 4
gpt4 key购买 nike

我的类中有一个具有 4 个属性的结构“边距”。与其编写四种不同的 getter/setter 方法,我想我可以用更好的方式来完成:

class myClass {
private:
struct margin {
int bottom;
int left;
int right;
int top;
}
public:
struct getMargin();
void setMargin(string which, int value);
};

但是如何在函数 setMargin() 中设置与字符串“which”对应的结构的属性?例如,如果我调用 myClass::setMargin("left", 3),我如何才能将“margin.left”设置为“3”?最好同时保持结构 POD ?我真的想不通...

顺便说一句,这真的比编写许多 getter/setter 方法更好吗?

谢谢!

最佳答案

首先,你的想法很糟糕……:)

请注意,您甚至没有 margin 成员(在下面添加)

如果您不想为每个属性设置 setter/getter,我会为此使用 enum:

class myClass {
private:
struct margin {
int bottom;
int left;
int right;
int top;
} m; // <--- note member variable
public:
enum Side
{
bottom, left, rigth, top
};
struct getMargin();
void setMargin(Side which, int value);
};

并且在 setMargin 中有一个 switch 语句。

void myClass::setMargin(Side which, int value)
{
switch (which)
{
case bottom:
m.bottom = value;
break;
//....
}
}

关于c++ - 通过变量值访问结构属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11940464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com