강의

멘토링

커뮤니티

Inflearn Community Q&A

tkdrhs50120518's profile image
tkdrhs50120518

asked

Hong Jung-mo's C++ Programming: Learning by Doing

1.14 First Encounter with the Preprocessor

std::max() 앞에 왜 std::를 붙이는건가요?

Resolved

Written on

·

830

0

#include <algorithm>만으로도 max사용이 가능한데 왜 std::를 붙이셨는지 이유를 모르겠습니다.저는 std::없이 출력해도 값이 나오는데 이해가 안가네요 max라는 함수는 algorithm에서 이미 정의되있는거 아닌가요? std::안에도 max가 있다는건 무슨 말인가요?

#include 
#include 
using namespace std;

int main()
{
	cout << max(1+3,3) << endl;
}
C++

Answer 4

1

Gogolevel님의 프로필 이미지
Gogolevel
Questioner

친절한 답변 감사합니다. 좋은 하루 되세요

1

선언은 서로 다른 영역에서 하고 있지만 같은 namespace라고 보는 것이 맞습니다.
max도 역시 using namespace std;을 넣어주면 붙여도 안붙여도 됩니다.

1

using namespace std; 를 입력하셨기 때문에 cout, endl 을 std:: 입력없이 사용가능하다 라는 것은 이해하시고 계신가요? 이 경우 붙여도 되고 안붙여도 됩니다.
algorithm 안에도 _STD_BEGIN이 있어서 std라는 namespace가 존재하는데 max는 그 안에 선언되어 있습니다.

0

Gogolevel님의 프로필 이미지
Gogolevel
Questioner

네네 using namespace std를 붙여서 std::입력없이 사용가능한것은 알고있습니다. 

그럼 cout,endl의 std와 max의 std는 다른것인가요?  cout,endl은 using namespace std로 std::를 생략해서 쓸수 있는건데 max는 붙인걸 보면 std라는 이름만 같은거라고 이해하면 될까요?

tkdrhs50120518's profile image
tkdrhs50120518

asked

Ask a question