모든 변수는 메모리에 값을 저장한다. 이러한 변수들은 각각 메모리의 주소값을 가진다.
각각의 변수의 접근하는 것은 이 변수의 주소에 접근하는 것이다.
이 때 변수의 이름이 아닌 주소로 접근하는 것이 포인터이다.
포인터를 사용하면 전역변수를 쓰지 않고 다른 영역의 변수에 접근할 수 있다.
Cirlce circle:
double d = circle.getArea()
int *p;
p = &circle;
d = p->getArea() // d=(*p).getArea와 같다
& 연산자 : &로 포인터에 객체 주소를 저장
* 연산자: 객체에 대한 포인터 선언
-> 연산자: 객체 포인터로 멤버를 접근
스마트 포인터
shared_ptr
shared_ptr는 유니크 포인터와 달리 복사 생성자를 가져 하나의 객체를 여러 포인터가 가리킬 수 있게 한다.
auto 변수명 = std::make_shared<자료형>(입력값);
위와 같은 방법으로 객체를 생성할 수 있다.
unique_ptr
unique_ptr는 하나의 객체를 하나의 스마트 포인터만 가리킬 수 있게 한다.
std::unique_ptr<자료형> 변수명(new 자료형);
auto 변수명 = std::make_unique<자료형>(입력값);
위와 같은 방법으로 객체를 생성할 수 있다.
'C++' 카테고리의 다른 글
연관 컨테이너와 비순차 연관 컨테이너 (0) | 2023.09.23 |
---|---|
컨테이너 어댑터와 비트셋 컨테이너 (0) | 2023.09.23 |
순차 컨테이너 (0) | 2023.09.22 |
람다 (0) | 2023.09.21 |
스코프 (0) | 2023.09.21 |