我正在将c++代码翻译成另一种语言,并且难以理解c++代码中的某些代码块。 Here是我无法理解该概念的那一行。

这是代码片段:

DynamicUint &operator=(const DynamicUintView<Iterator> that) &
      {
        view(*this) = that; // <== this line seems weird
        return *this;
      }

view(*this) = that;中,我所掌握的是它试图通过将view值作为参数来初始化(*this)成员变量,但是据我所知,在DynamicUintView类中没有构造函数接受一个参数。有人可以对此有所了解吗?

最佳答案

view is a type alias for DynamicUintView<iterator> ,因此此代码执行以下操作:

  • 通过调用implicit DynamicUintView<iterator> conversion operator构造一个临时DynamicUintView<iterator>对象,该对象又调用two-arg constructor of DynamicUintView<iterator>
  • 在此临时对象上调用
  • view::operator= ,并传递that作为参数。
  • 关于c++ - 成员变量前面的c++括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61969688/

    10-11 22:46