멤버 함수 선언의 앰퍼샌드에 대한 심층 해석
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!