힙에 객체를 생성 후 포인터 접근 방법 외에 객체 접근을 해야만 하는 경우가 있었다.
간단하지만 몰랐던 방법이라 이를 위에 예제 코드를 작성해보았다.
#include <iostream>
#include <memory>
using namespace std;
class testA {
public:
void func1(){
cout << "testA.func1" << endl;
}
};
int main() {
testA* aClass = new testA;
// 포인터 접근
aClass->func1();
testA& bClass = *aClass;
// 객체 접근
bClass.func1();
return 0;
}
c++에서는 객체를 힙에 생성하기 위해서는 new를 통해 포인터로 받는다. 그리고 포인터를 통해 멤버함수에 접근하기 위해 ->을 이용한다.
그런데 매크로 사용 혹은 기타 이유로 객체에 대한 접근(.)로 해야만 하는 경우가 있다. 이때 참조(&)를 통해 선언 후 이를 포인터 객체를 맵핑해주면 참조로부터 접근이 가능하다.