클래스 이름 앞에 붙는 ::는 뭔가요?


::Configuration * tmpCo = m_configurationDB;//pointer to current db 제가 이런 코드를 봤는데 도대체 :: 이게 뭘 하는 건지 알 수가 없어요

::를 지우면 declaration of tmpCo as a pointer to an object of the class Configuration 이런 게 떠요.

  • 2016년 01월 15일에 작성됨

조회수 212


1 답변


좋아요
0
싫어요
채택취소하기

지금 위치의 namespace가 아니라 global namespace만 쓰고 싶을 때 맨 앞에 ::를 붙입니다.

예를 들어, 다음과 같이 서로 다른 Configuration 클래스가 있다고 하면

class Configuration; // global namespace에 있는 class 1 
namespace MyApp
{
    class Configuration; // class1과 다른 namespace에 있는 class 2
    function blah()
    {
        Configuration::doStuff(...) // MyApp::Configuration, class 2
        ::Configuration::doStuff(...) // top-level Configuration, class 1
    }
}

이렇게, 다른 namespace에서 같은 이름을 쓰고 있을 때 namespace를 한정하기 위해 쓰는 거죠

  • 2016년 01월 15일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close