C++ 의 cout와 cin의 원형 질문
해지개
)
책을 보면서 읽히고 있습니다.
현재 함수의 원형은 한개씩 찾아가며 확인하고 있습니다. 제가 공부하는 습관이 원형을 봐야 되는 성격이라..해더 파일을 직접 찾아봐도 cin과 cout의 즉, std클래스의 원형을 찾아볼수가 없더군요..
사실 많은 시간을 투자했습니다..^^;; c++초보라... 제가 못찾는 건지는 몰라도 어떤 곳에 위치해 있는건가요??
iostream / istrea / ostream 은 기본적으로 찾아보니.
extern _crtimp istream_withassign cin; 이런 문구가 있더군요.. 이것이 원형인가요?
-
나길
^^ 그렇군요..다른건 다찾아지던데 이것만 특히 종족을 감춘 놈이라!! 감사합니다..
-
비치
아.. 중요한 질문 내용의 답이 빠졌네요. iostream 에 있습니다.
-
Orange
예전에 수다님(game programming gems 역자)깨서 관련하여 글(gpgstudy.co.kr)을 적어주셨는데요, 이녀석이 매우 특이합니다. 어노테이티드 c++ 인가 어딘가에서 꽤 분량을 할애하여 다루었을 정도로 먼가 있는 것 같은데요, 저는 책을 구할 수 없어서 짐작만 하고 있습니다.
제가 알고 있는 내용은 이 인스턴스는 단순 extern 을 사용한 전역변수가 아니라 싱글톤과 같이 최초 프로그램이 참조 되는 순간에 단 한번만 초기화가 된다는 -
월식
위에 각 정의를 따라가시면 istream_withassign 의 경우, 시스템이나 OS 에 따라 다를 수는 있지만 단순히 std::istream 이라고 보셔도 무방합니다. 정리하면, std::cin 은 std::istream 의 인스턴스, 즉 표준 입출력에 대한 인스턴스인 것이죠.
extern 키워드는 어딘가 c++ 코드에서 이녀석을 정의하였다, 라는 의미로 사용되었습니다. -
커피우유
네.. 그것이 원형입니다. 가장 중요한 포인트는, 클래스와 인스턴스의 개념입니다. 아시겠지만,
class A
{
};
int main()
{
A a;
}
에서 A 가 클래스이고 a 가 인스턴습니다. std::cin 은 인스턴스입니다.