无需复制即可访问 class 中的变量

Get access to a variable in a class without copying it

我想在不复制的情况下访问 class 中的字段。

我有一个 class 存储两个变量(此处为简化版本)。 在 get_cutting_types 方法中,我检查用户输入 truefalse 的位置,并通过引用传回对象。但是这里我必须使用=,意思是复制数据。

是否有直接传递字段而无需重新分配的方法?

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; 
    }