* 디시 글쓰기 병신이라 co★ut가 금칙어로나와서 저렇게써둠


#include <string> 하지 않고도 

#include <iostream> 만으로도 string을 사용할수있잖음?



가령

#include <iostream>

using namespace std;

int main()

{

string s1 = "dc";

cout<<s1<<endl;    // 에러

cout<<s1.c_str()<<endl;   // 정상출력


return 0;

}


같은식으루 말이야?


#include <iostream>
#include <string>

할경우에는

cout<<c1<<endl; 이 가능해지고.


이런것만 봐도 #include <iostream> 에 들어있는(?) string과

#include <string> 에는 분명한 차이가 있는거같은데


차이점이나 주의점이 뭐임?


대강 나오는 얘기가 #include <iostream> 의 string은 믿지마라

쓸꺼면 #include <string>해서 써라... 라는거같은데


단순히 iostream에 << 연산자 오버로딩이 구현되지 않은것일뿐임?

그것도 이해가안가는게 왜 그런 반쪽짜리를 만들어논거지?


iostream에 string이 구현된건 string이 필요한뭔가가있어서 

딱그수준으로만 만들어둔거고, string의 제대로된(?) 기능같은거는

<string>에 제대로 더 만들어둔건가??