아티클 목록
C++ ->, ., ::의 차이
C++ ->, ., ::의 차이
동일한 개발 내용을 C++ 제품에 포팅했는데 다르게 동작하는 문제가 발생해서 엉뚱한 곳에서 한참 찾았다..
원인은 허무하게도 메서드를 잘못 호출해서 발생한 문제였다. (빌드 에러도 안나서 잘못 고친줄 몰랐다)
if (somevar.isEmpty()) // 잘못 수정
{
...
}
if (somevar->IsEmpty()) // 재수정
{
...
}JS개발만 하다보니 ->, ., ::의 차이를 정확히 몰라 이번 기회에 정리해본다.
->
포인터를 통해 객체 멤버 변수나 메서드에 접근할 때 사용
Foo *foo = new Foo();
foo->member_var = 10;
foo->member_func();.
객체 인스턴스를 통해 객체 멤버 변수나 메서드에 접근할 때 사용
Foo foo;
foo.member_var = 10;
foo.member_func();::
클래스나 구조체 또는 네임스페이스의 스태틱 변수나 메서드에 접근할 때 사용
int some_val = Foo::static_var;
Foo::static_method();
int max_int = std::numeric_limits<int>::max();