string three() { return “kittens”; }
const string four() { return “are an essential part of a healthy diet”; }
this 문서에 따르면 첫 번째 줄은 수정 가능한 rvalue이고 두 번째 줄은 const rvalue입니다. 아무도 이것이 무슨 뜻인지 설명 할 수 있습니까?수정 가능한 rvalue와 const rvalue의 차이점은 무엇입니까?
string three() { return “kittens”; }
const string four() { return “are an essential part of a healthy diet”; }
this 문서에 따르면 첫 번째 줄은 수정 가능한 rvalue이고 두 번째 줄은 const rvalue입니다. 아무도 이것이 무슨 뜻인지 설명 할 수 있습니까?수정 가능한 rvalue와 const rvalue의 차이점은 무엇입니까?
함수의 반환 값은 std :: string의 복사 생성자를 사용하여 복사됩니다. 디버거를 사용하여 프로그램 실행을 단계별로 수행하면 확인할 수 있습니다.
conments가 말하는 것처럼, 그것은 꽤 자기 explantory. 첫 번째 값은 반환 할 때 편집 할 수 있습니다. 두 번째 값은 읽기 전용입니다. 그것은 일정한 값입니다. 예를 들어
:
int main() {
std::cout << three().insert(0, "All ") << std::endl; // Output: All kittens.
std::cout << four().insert(0, "women ") << std::endl; // Output: This does not compile as four() returns a const std::string value. You would expect the output to be "women are an essential part of a healthy diet”. This will work if you remove the const preceding the four function.
}
r- 수치가 할당 연산자의 기록 측에서 기록 할 수있는 것입니다. A 수정 가능 Rvalue은 실행 중에 언제든지 값을 변경할 수있는 이름 (이름에서 볼 수있는 것)입니다. 한편, const Rvalue은 프로그램 실행 중에 변경할 수없는 상수입니다.
분명히 고양이가 자라고 고양이가되기 때문입니다. – Yakk
첫 번째로 할 수 있습니다. 'three() [0] = 'K'', 두 번째 함수로는 그렇게 할 수 없습니다. –
이름이 이미 모두를 말합니다. 하나는 const이고 다른 하나는 isnt입니다. – user463035818