c++ 함수 호출 연산자(float operator()(float a)이런거)는 매개변수가 같은데 오버로드가 될수있음? directx에서 mxfloat4x4구조체에 float operator()(size_t row,size_t column) const이랑 float& operator()(size_t row,size_t column)이 같이 선언되어 있는데 어떻게 가능한거임? - dc official App
lvalue 랑 rvalue 따라서 오버로딩
좀만더 자세히 설명해주세요ㅠㅠ - dc App
add 함수가 있다고 생각해봐
add(1, 2) = 10 은 이상하지?
그럼 add(1, 2) 는 rvalue 가 되는거임
반면에 클래스에 자기 멤버를 가변 참조형으로 반환해주는 메소드가 있다 치면 거기에는 뭘 대입을 할 수 있겠지. 그게 lvalue 임
함수객체가 대입되는입장에서 사용되면 아래 참조반환함수가 호출되고 대입하는입장이면 위의 값반환함수가 호출된다는건가요?? - dc App
그럼 float& operator()(size_t row,size_t column) 가 호출될거임. 직접해보셈
아이고 감사합니다 선생님ㅠㅠ - dc App
씹고수만 찾는거 거만해서 말안해줌
이 댓글은 게시물 작성자가 삭제하였습니다.
함수가 const냐 아니냐에 따라서 오버로딩 가능하다 이거시야
mxf(1,1) = 10같이 리턴된 참조에 바로 값이 대입되는 경우는 아래 참조반환함수가 a = mxf(1,1)이나 a = mxf(1,1)+1이나 function(mxf(1,1))같이 그외 경우에는 위의 값반환함수가 호출된다는게 맞는건가요 - dc App
그냥 const객체에서 호출하면 const가 호출되는거네용‥‥ - dc App