레퍼런스 선언
int val =10;
int &ref = val;
포인터를 이용한 Call-By-Reference
: 포인터를 이용해서 포인터가 가리키는 메모리 공간에 직접 접근이 가능..
[단점] 포인터는 포인터 연산만 가능하기 때문에 잘못된 메모리 접근을 할 가능성이 높다.
레퍼런스를 이용한 Call-By-Reference
:함수내에서 외부에 존재하는 변수에 직접 접근하는 것을 허용하되, 포인터 연산을 못하게 하는 방법.
=>레퍼런스 사용
->swap함수 내에서는 a와 b라는 이름으로 main함수 내에 선언된 변수 val1과 val2에 직접 접근이 가능하게 된다.
int val =10;
int &ref = val;
포인터를 이용한 Call-By-Reference
: 포인터를 이용해서 포인터가 가리키는 메모리 공간에 직접 접근이 가능..
[단점] 포인터는 포인터 연산만 가능하기 때문에 잘못된 메모리 접근을 할 가능성이 높다.
#include <iostream> using std::cout; void swap(int *a, int *b) int main(void) cout<< "val1: "<<val1<< " "; swap(&val1, &val2); |
레퍼런스를 이용한 Call-By-Reference
:함수내에서 외부에 존재하는 변수에 직접 접근하는 것을 허용하되, 포인터 연산을 못하게 하는 방법.
=>레퍼런스 사용
->swap함수 내에서는 a와 b라는 이름으로 main함수 내에 선언된 변수 val1과 val2에 직접 접근이 가능하게 된다.
#include <iostream> using std::cout; void swap(int &a, int &b) int main(void) cout<< "val1: "<<val1<< " "; swap(val1, val2); |
'Language > C++' 카테고리의 다른 글
복사생성자가 호출되는 시점 (0) | 2011.03.07 |
---|---|
깊은 복사(Deep Copy) ..(const Person& p) 명시적 정의 (0) | 2011.03.07 |
객체 포인터 배열 (0) | 2011.03.04 |
생성자와 동적할당 (0) | 2011.03.04 |
new / delete (0) | 2011.03.03 |