我正在将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>
,因此此代码执行以下操作:
DynamicUintView<iterator>
conversion operator构造一个临时DynamicUintView<iterator>
对象,该对象又调用two-arg constructor of DynamicUintView<iterator>
。 view::operator=
,并传递that
作为参数。 关于c++ - 成员变量前面的c++括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61969688/