아래 함수를 출력하면
7이 나와야 할거 같은데...
1이 출력이 됩니다...
namespace work3::work33::work3333 //컴파일러 버전 17적용해야됨 { int a(1); void doSomething() { a += 6; } }
int main()
{
work3::work33::work3333::a;
work3::work33::work3333::doSomething;
cout << work3::work33::work3333::a << endl;
cout << work3::work33::work3333::doSomething << endl;
}
뒤에서 배우시겠지만 함수 이름만 달랑쓰면 그 함수의 주소값을 의미합니다. 그렇기 때문에 저건 컴파일 에러가 없는 정상적인 문법을 가진 문장이에요! 그래서 컴파일러가 잡아주지 않았던 것입니다. 뒤에서 배우시겠지만 함수 이름만 달랑쓰면 그 함수의 주소값을 의미합니다.