무의미하다고 리플 달았다가 본문 예시보고 아 이거 책에서 봤던거네 하고 지움 ㅋㅋㅋ 근데 이거 모던에서는 rvalue의 장점 못살리게 될 수 있어서 이제는 안 맞지 않을까
그래서 어디서 const 반환값 씀? 그리고 그냥 const 없이 반환시켜 봤는데 오류 안남
그냥 안 쓰는게 나을 듯 clang-tidy에서도 쓰지 말라고 그럼
오옹
그러면 ==을 써야 하는데 =을 쓰는 것 같은 경우는 어떻게 막음?
그건 사실 사용자가 신경써야할 문제지 않을까 클래스 작성자가 저걸 방지해줘야한다는건 오바 아닌가 싶음
근데 const 없이 반환시켜 봤는데 오류 안난다는 소리는 어떤 의미임? 원래부터 const를 써서 저렇게 쓰면 오류나게 만들어서 방지시킨다는 거니까 const를 안 쓰면 오류 안나는게 당연한거 아님?
ㅇㅇ ㅈㅅ
그리고 const 객체의 첨자 연산은 const 반환값으로 해야 되지 않나
첨자 연산은 레퍼런스를 반환하는 건데 본문은 밸류를 반환할 때 const 여부 얘기 아닐까?
둘다 포함인데...
죄송
동일인임
레퍼런스의 경우를 포함하면 당연히 리턴값의 내용이 변경되면 안될때라 넘나 많지.....
그럼 레퍼런스의 사례 중 대표적인 것 좀 써줘
아 리턴값이 아니라 레퍼런스가 가리키는 원래 객체의 내용
?? 무슨말??
첨자연산 뿐만 아니라 각종 상수 메소드에서 리턴하는 레퍼런스들은 상수 레퍼런스여야 하겠지 형식상은 그렇고 상황상으로는 그냥 사용자 클래스 설계에 달린거라 예를 들기가 막막한 것 같은데
어떤 메소드에서 레퍼런스를 리턴하면 객체 내부의 뭔가에 대한 레퍼런스일 거 아냐 그거 변경시키면 안될때 상수 레퍼런스 리턴한다는 얘기임
아.. 그러면 '값에서는 하지 말고 참조에서는 상수 함수일때만 해라' 이거야?
상수메소드'만'이 아니라 상수메소드'는' ㅇㅇ 비상수메소드도 예를 들어 멤버 변수 a는 메소드 내에서 변경 시키고 멤버 변수 b는 변경되지 않도록 상수 레퍼런스로 리턴하는 시나리오가 가능하니까
노파심에서 덧붙이면 상수 메소드도 멤버변수가 아닌 메소드 파라미터로 받은 비상수 레퍼런스를 다시 비상수 레퍼런스로 리턴한다는가, 메소드 내 정적변수의 비상수 레퍼런스를 리턴한다든가 하는건 가능 (자주 쓰지는 않는 것 같지만) 멤버변수의 비상수레퍼런스 리턴이 불가능
감사합니다 형님!
그런데 A객체와 B 객체를 어떻게 한번에 반환함?
답변좀
그러면 맴버 함수가 아닌 전역 함수일 때는 어떻게 판단해야 함?
좀 좁은 얘기인데 본문 저거는 컴파일러 워닝 켜면 알려줌
GCC+kdevelop에서는 안되던데?
컴파일 플래그 뭐뭐 씀?
무의미하다고 리플 달았다가 본문 예시보고 아 이거 책에서 봤던거네 하고 지움 ㅋㅋㅋ 근데 이거 모던에서는 rvalue의 장점 못살리게 될 수 있어서 이제는 안 맞지 않을까
그래서 어디서 const 반환값 씀? 그리고 그냥 const 없이 반환시켜 봤는데 오류 안남
그냥 안 쓰는게 나을 듯 clang-tidy에서도 쓰지 말라고 그럼
오옹
그러면 ==을 써야 하는데 =을 쓰는 것 같은 경우는 어떻게 막음?
그건 사실 사용자가 신경써야할 문제지 않을까 클래스 작성자가 저걸 방지해줘야한다는건 오바 아닌가 싶음
근데 const 없이 반환시켜 봤는데 오류 안난다는 소리는 어떤 의미임? 원래부터 const를 써서 저렇게 쓰면 오류나게 만들어서 방지시킨다는 거니까 const를 안 쓰면 오류 안나는게 당연한거 아님?
ㅇㅇ ㅈㅅ
그리고 const 객체의 첨자 연산은 const 반환값으로 해야 되지 않나
첨자 연산은 레퍼런스를 반환하는 건데 본문은 밸류를 반환할 때 const 여부 얘기 아닐까?
둘다 포함인데...
죄송
동일인임
레퍼런스의 경우를 포함하면 당연히 리턴값의 내용이 변경되면 안될때라 넘나 많지.....
그럼 레퍼런스의 사례 중 대표적인 것 좀 써줘
아 리턴값이 아니라 레퍼런스가 가리키는 원래 객체의 내용
?? 무슨말??
첨자연산 뿐만 아니라 각종 상수 메소드에서 리턴하는 레퍼런스들은 상수 레퍼런스여야 하겠지 형식상은 그렇고 상황상으로는 그냥 사용자 클래스 설계에 달린거라 예를 들기가 막막한 것 같은데
어떤 메소드에서 레퍼런스를 리턴하면 객체 내부의 뭔가에 대한 레퍼런스일 거 아냐 그거 변경시키면 안될때 상수 레퍼런스 리턴한다는 얘기임
아.. 그러면 '값에서는 하지 말고 참조에서는 상수 함수일때만 해라' 이거야?
상수메소드'만'이 아니라 상수메소드'는' ㅇㅇ 비상수메소드도 예를 들어 멤버 변수 a는 메소드 내에서 변경 시키고 멤버 변수 b는 변경되지 않도록 상수 레퍼런스로 리턴하는 시나리오가 가능하니까
노파심에서 덧붙이면 상수 메소드도 멤버변수가 아닌 메소드 파라미터로 받은 비상수 레퍼런스를 다시 비상수 레퍼런스로 리턴한다는가, 메소드 내 정적변수의 비상수 레퍼런스를 리턴한다든가 하는건 가능 (자주 쓰지는 않는 것 같지만) 멤버변수의 비상수레퍼런스 리턴이 불가능
감사합니다 형님!
그런데 A객체와 B 객체를 어떻게 한번에 반환함?
답변좀
그러면 맴버 함수가 아닌 전역 함수일 때는 어떻게 판단해야 함?
좀 좁은 얘기인데 본문 저거는 컴파일러 워닝 켜면 알려줌
GCC+kdevelop에서는 안되던데?
컴파일 플래그 뭐뭐 씀?