It's so you can declare, in your own headers, methods that rely on the declarations of iostream types without having to #include
the iostream headers themselves, which are large, complex and slow to compile against.
Here's a simple example:
// foo.h
#include <iosfwd>
void sucker(std::iostream& is);
// foo.cc
#include <iostream>
void sucker(std::iostream& is) {
is >> somevar;
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…