• ベストアンサー

C++

初歩的な質問ですがよろしくお願いします 文字列を扱いたい時には #include <string>として<string>をインクルードするような事が入門書に記載されているのですが このヘッダ?というのでしょうか、これをインクルードしなくてiostreamだけで string型がエラーなく使えてしまうのですがどういうことですか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

stringヘッダファイルが、iostreamのヘッダファイルの中でインクルードされていることによって間接的に使えるようなっているということだと思います。 確かにこのような場合、stringヘッダファイルを直接インクルードしなくてもエラー無く使えてしまいます。 いくつものシステムのインクルードを使っているとこのようなことはよく起こることで、そのような組み合わせを覚えていけば実際よりも少ないインクルードで済むことにはなります。 しかし、ヘッダファイルのインクルードは使用する機能をソースコードを見る人に伝えるという側面もあるので、素直に必要な機能を持つヘッダファイルをインクルードしていったほうが良いと思います。

elly2
質問者

お礼

>ヘッダファイルのインクルードは使用する機能をソースコードを見る人に伝えるという側面もあるので 初心者の私から見ても確かに言われてみればそのとおりだと思います ありがとうございました

その他の回答 (1)

  • OKWavexx
  • ベストアンサー率7% (29/378)
回答No.1

string型は#include <string>でインクルードしなくても使えるということです

elly2
質問者

お礼

なんだよ、入門書は嘘こいてたのか! 初心者には不親切だなぁ そんな適当ぶっこくなら<bits/stdc++.h>をインクルードさせたらええやんかな ありがとうございました!!

関連するQ&A