저는 이것이 아주 기본적인 것임을 알고 있습니다 만, 나는이 시점까지 추측하고 있습니다.cin/cout 오버로드에 대한 간단한 질문입니다.
Foo는 문자열 클래스의 개인 상속을 가진 개체이며, 왜 내가 캐스팅했는지를 보여줍니다. 나는 그래서 만약
(프라 타의) 프라이머 C++에서 예제를 사용하는 함수와 같은 : 그래서
istream & operator>>(istream & is, Foo & f)
{
is >> (string &)f;
return is;
}
int main()
{
Foo f;
cin >> f;
}
, 한 번 CIN >> f는 명중, 함수가 호출되고 현재 문자열이 istream로 저장됩니다 참고. istream 객체가 반환되었고 이제는 ...? 반환 된 istream 객체의 내용 (문자열)이 이제 f 내에 자동으로 배치됩니까? 아니면 영화가 어떻게 작동하는지 이해하는 단계를 놓쳤습니까? 내가 수행하는 경우 또한
:
int x;
cin >> f >> x;
어떻게 암시과 같을 것이다? (cin) >> x처럼?
마지막으로, 더 간단한 한 가지. (AN ostream에의 참조를 포함)하는 기능의 경우 나는 루프의 모든 배열 항목을 통해 전달하고있는 중이 야이 :
for(int i=0;i < 5;i++)
{
os << array[i] << "\n";
}
ostream에 객체가 단지 자체 내에서 각 배열 항목이 혼합되어 있습니까?
'Foo'란 무엇입니까? 왜 이것을 참조 문자열로 캐스팅하고 있습니까? –
Foo 객체를 캐스팅해야하므로 string 클래스에서 상속 받았다는 언급을 잊어 버렸습니다. Prata의 입문서에서 예를 들어 보겠습니다. – Ilya
그냥'Foo'를 제거하고 혼란을 피하는 것이 어떻습니까? – GManNickG