如何更新来自getter的变量

时间:2018-04-19 02:49:25

标签: c++ methods override

我需要我的前端方法才能支持为我的任务做这样的事情。已经4个小时了。我似乎无法弄明白。我试过重载=运算符,但这似乎不起作用。

vectD3.front() = '{';
vectD3.back() = '}';

基本上我需要该代码在运行时不抛出错误

这是我的前后方法

   public:T front()
   {
      if(currentSize > 0)
      {
         return array[0];
      }
      else
      {
         throw std::runtime_error("dynarray has no members");   
      }
   }
   public:T back()
   {
      if(currentSize > 0)
      {
         return array[currentSize-1];
      }
      else
      {
         throw std::runtime_error("dynarray has no members");
      }
   }

谢谢是提前

1 个答案:

答案 0 :(得分:1)

您需要通过getter函数返回引用。然后你可以修改它。 像这样:

class A
{
public:
    A(char d1): data(d1) {}

    char& getData()
    {
        return data;
    }
private:
    char data;
};

int main()
{
    A a('a');
    std::cout << a.getData();//data = a
    a.getData() = 'b'; 
    std::cout << a.getData();//data = b

    return 0;
}