深入解读成员函数声明中的 & 符号
在 C 中,非静态成员函数可以用 ref 限定符修饰。这些限定符指定传递给函数的隐式对象参数的引用类别。
让我们探讨一下两个常见的引用限定符:
不指定任何引用限定符,无论对象的值类别如何,都可以调用该函数。
来说明区别:
struct Foo { void bar() {} // Default: can be invoked with both lvalues and rvalues void bar1() & {} // Can only be invoked with lvalues void bar2() && {} // Can only be invoked with rvalues };
在上面的示例中:
这里有一个现场演示:
int main() { Foo f; f.bar(); f.bar1(); Foo().bar2(); // Error: bar2 requires an rvalue }
了解这些引用限定符允许您根据所调用的对象的引用类别来控制对成员函数的访问上。
以上是C 成员函数声明中的单 & 符号和双 & 符号有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!