みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C++

初歩的な質問ですがよろしくお願いします

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

投稿日時 - 2019-01-24 10:09:59

QNo.9580882

困ってます

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

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

投稿日時 - 2019-01-24 14:37:43

お礼

>ヘッダファイルのインクルードは使用する機能をソースコードを見る人に伝えるという側面もあるので

初心者の私から見ても確かに言われてみればそのとおりだと思います
ありがとうございました

投稿日時 - 2019-01-24 17:42:56

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

投稿日時 - 2019-01-24 10:14:31

お礼

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

ありがとうございました!!

投稿日時 - 2019-01-24 10:31:08

あなたにオススメの質問