- ベストアンサー
C++
初歩的な質問ですがよろしくお願いします 文字列を扱いたい時には #include <string>として<string>をインクルードするような事が入門書に記載されているのですが このヘッダ?というのでしょうか、これをインクルードしなくてiostreamだけで string型がエラーなく使えてしまうのですがどういうことですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
stringヘッダファイルが、iostreamのヘッダファイルの中でインクルードされていることによって間接的に使えるようなっているということだと思います。 確かにこのような場合、stringヘッダファイルを直接インクルードしなくてもエラー無く使えてしまいます。 いくつものシステムのインクルードを使っているとこのようなことはよく起こることで、そのような組み合わせを覚えていけば実際よりも少ないインクルードで済むことにはなります。 しかし、ヘッダファイルのインクルードは使用する機能をソースコードを見る人に伝えるという側面もあるので、素直に必要な機能を持つヘッダファイルをインクルードしていったほうが良いと思います。
その他の回答 (1)
- OKWavexx
- ベストアンサー率7% (29/378)
回答No.1
string型は#include <string>でインクルードしなくても使えるということです
質問者
お礼
なんだよ、入門書は嘘こいてたのか! 初心者には不親切だなぁ そんな適当ぶっこくなら<bits/stdc++.h>をインクルードさせたらええやんかな ありがとうございました!!
お礼
>ヘッダファイルのインクルードは使用する機能をソースコードを見る人に伝えるという側面もあるので 初心者の私から見ても確かに言われてみればそのとおりだと思います ありがとうございました