无需复制即可访问 class 中的变量
Get access to a variable in a class without copying it
我想在不复制的情况下访问 class 中的字段。
我有一个 class 存储两个变量(此处为简化版本)。
在 get_cutting_types
方法中,我检查用户输入 true
或 false
的位置,并通过引用传回对象。但是这里我必须使用=
,意思是复制数据。
是否有直接传递字段而无需重新分配的方法?
class joint
{
std::vector<char> m_letters;
std::vector<char> f_letters;
void get_cutting_types(bool flag, std::vector<char>& letters) {
if (flag) {
letters= m_letters;
} else {
letters= f_letters;
}
}
}
这里有很多东西要打开,但是:
我认为您无法避免在某个地方使用“=”符号。而且我看不出有任何问题。
如果您只想要 return 一个布尔值:那么也许只需向您的 class 添加一个新的 public 方法,例如
public:
bool isMale() { return <<some test>>; } // Easy peasy!
问:这是否解决了您的顾虑?
问:或者您需要“其他东西”?如果有,请说明。
Sorry maybe there was confusion in the code of variable naming. It is
only a return values of char not a single boolean flag.
好的,也许你想要这样的东西:
public:
const std::vector<char>& get_cutting_types(bool is_male) {
return (is_male) ? m_letters : f_letters;
}
我想在不复制的情况下访问 class 中的字段。
我有一个 class 存储两个变量(此处为简化版本)。
在 get_cutting_types
方法中,我检查用户输入 true
或 false
的位置,并通过引用传回对象。但是这里我必须使用=
,意思是复制数据。
是否有直接传递字段而无需重新分配的方法?
class joint
{
std::vector<char> m_letters;
std::vector<char> f_letters;
void get_cutting_types(bool flag, std::vector<char>& letters) {
if (flag) {
letters= m_letters;
} else {
letters= f_letters;
}
}
}
这里有很多东西要打开,但是:
我认为您无法避免在某个地方使用“=”符号。而且我看不出有任何问题。
如果您只想要 return 一个布尔值:那么也许只需向您的 class 添加一个新的 public 方法,例如
public: bool isMale() { return <<some test>>; } // Easy peasy!
问:这是否解决了您的顾虑?
问:或者您需要“其他东西”?如果有,请说明。
Sorry maybe there was confusion in the code of variable naming. It is only a return values of char not a single boolean flag.
好的,也许你想要这样的东西:
public:
const std::vector<char>& get_cutting_types(bool is_male) {
return (is_male) ? m_letters : f_letters;
}