Notice
Recent Posts
Recent Comments
NeuroWhAI의 잡블로그
[C++] ref-qualified member functions : 값의 종류에 따라 메소드 오버로딩하기 본문
#include <iostream>
using namespace std;
class Foo
{
public:
void bar() &
{
cout << "L" << endl;
}
void bar() &&
{
cout << "R" << endl;
}
};
int main()
{
Foo f;
f.bar(); // L
std::move(f).bar(); // R
return 0;
}
결과 : https://ideone.com/OIMlRZ
Foo의 멤버함수 bar의 선언부를 보시면 '&'와 '&&'가 보이실겁니다.
이것이 'ref-qualified'이며 각각 lvalue일때, rvalue일때를 지정합니다.
딱 이것뿐이며 응용은 여러분 몫...
또한 '&&'로 되어있어도 그 안에서의 this는 lvalue이므로 주의하셔야 합니다.
('&&'인 메소드에서 다른 메소드를 호출하면 '&&'가 아니라 '&' 버전의 메소드가 호출됨)
'개발 및 공부 > 언어' 카테고리의 다른 글
[Rust] Pin과 Unpin 설명. (0) | 2019.09.26 |
---|---|
[Rust] Async 공부... (0) | 2019.08.08 |
[C#] Index, Range 구조체와 hat('^') 연산자 (0) | 2019.02.18 |
[Rust] AsRef와 Borrow trait의 차이 (0) | 2019.01.23 |
[Rust] 패턴 매칭 바인딩 모드(Binding Modes) 설명 (0) | 2019.01.20 |