[완료][C++] 객체 생성시 :: 의 의미?
글쓴이: luciell / 작성시간: 목, 2011/05/19 - 2:35오후
안녕하세요 ^^; 한창 프로그래밍에 미치고 싶은 한 학생입니다..
맨날 눈팅 검색만 하다가 검색하기에 애매한것이 나와서.. 궁금증을 풀어 보고자 글을 올려 봅니다..
C++ 을 공부하다가 다음과 같은 코드를 직면하게 되었습니다.
object* obj = ::new object();
C++ 을 공부한지 얼마 안되어.. 제가 아는 :: 라는 것은 클래스 안애 내부적인 변수나 함수를 호출, 연결할때 사용하는것으로 알고 있는데요..
class object { private: int integer; public: printf(); } .... object::print();
위와 같이 사용하는걸로 알고 있습니다.
그런데 객체 생성시 new 앞에 :: 붙는 코드들도 눈에 보이더군요...
왜 그런건지 .. 너무 궁금합니다..! :: 로는 검색하기도 난해해서;
C++ 을 더욱더 심도 있고 제대로 공부하고 싶은데 혹 참고할만한 자료나 책같은것이 있을까요?
Forums:
::는 스코프 지정자입니다. C++의 스코프중에는
::는 스코프 지정자입니다.
C++의 스코프중에는 네임스페이스도 있습니다.
글로벌 네임스페이스에는 이름이 없습니다.
결국 아무것도 안적고 ::라고하면 글로벌 네임스페이스가됩니다.
int foo();
namespace A {int foo();}
using namespace ns;
// foo(); -> 컴파일 에러
::foo(); // -> 전역 함수의 foo() 호출
A::foot(); // -> 네임스페이스 A 안에 있는 함수 foo() 호출
new 연산자도 오버로딩이 되기 때문에, 글로벌 네임스페이스의 new 연산자를 호출하겠다는 뜻이됩니다.
감사합니다!! 앞으로 더욱 분발해야겠네요.. 좋은
감사합니다!!
앞으로 더욱 분발해야겠네요..
좋은 하루 되세요~!
네가 꿈을 꾸지 않는 한, 꿈은 절대 시작되지 않는단다.
언제나 출발은 바로 '여기'야 떄가 무르익으면, 그럴수 있는 조건이 갖춰지면,
하고 미루다 보면, 오느새 현실에 파묻혀 소망을 잃어버리지.
그러므로 무언가 '되기(be)' 위해서는 반드시 지금 이 순간 무언가를 '해야(do)'만 해
- Stuart Avery Gold 의 우화소설 Ping 중에서..
무슨 정신으로 적은건지 모르겠는데, 예제코드가
무슨 정신으로 적은건지 모르겠는데, 예제코드가 잘못됬네요.
using namespace ns;가 아니라 using namespace A; 입니다.
댓글 달기