728x90
반응형

참조 3

[C++] 참조에 대한 참조

유형에서 참조에 대한 참조를 가져오면 참조 유형에 대한 일종의 특수한 참조가 아니라 해당 유형에 대한 참조를 얻게 된다. 그러나 어떤 종류의 참조일까? lvalue 참조일까? rvalue 참조일까? using rr_i = int&&; using lr_i = int&; using rr_rr_i = rr_i&&; // ‘‘int && &&’’ is an int&& using lr_rr_i = rr_i&; // ‘‘int && &’’ is an int& using rr_lr_i = lr_i&&; // ‘‘int & &&’’ is an int& using lr_lr_i = lr_i&; // ‘‘int & &’’ is an int& 즉, lvalue 참조가 상상 이긴다. 이것에는 의미가 있다. 유형으로 할 수 있..

[C++] lvalue 참조

형식 이름에서 표기법 X&는 'X에 대한 참조'를 의미한다. lvalue에 대한 참조에 사용되므로 종종 lvalue 참조라고 한다.\ void f() { int var = 1; int& r {var}; // r and var now refer to the same int int x = r; // x becomes 1 r = 2; // var becomes 2 } 참조가 무언가에 대한 이름인지 확인하려면(즉, 객체에 바인딩됨) 참조를 초기화해야 한다. int var = 1; int& r1 {var}; // OK: r1 initialized int& r2; // error : initializer missing extern int& r3; // OK: r3 initialized elsewhere 참조 초기화..

[C++] 참조(references)

포인터를 사용하면 잠재적으로 많은 양의 데이터를 저렴한 비용으로 전달할 수 있다. 데이터를 복사하는 대신 해당 주소를 포인터 값으로 전달하면 된다. 포인터의 유형은 포인터를 통해 데이터에 수행할 수 있는 작업을 결정한다. 포인터를 사용하는 것은 다음과 같은 몇 가지 면에서 객체 이름을 사용하는 것과 다르다. 다른 구문을 사용한다. 예를 들어 obj 대신 p->m을 사용한다. 포인터가 다른 시간에 다른 객체를 가리키도록 할 수 있다. 객체를 직접 사용할 때보다 포인터를 사용할 때 더 주의해야 한다. nullptr이거나 기대하지 않은 객체를 가리킬 수 있다. 이러한 차이점은 성가실 수 있다. 예를 들어, 일부 프로그래머는 f(&x)가 f(x)에 비해 깔끔하지 못하다고 생각한다. 게다가 다양한 값으로 포인터 ..

728x90
반응형