記事へのコメント36件

    • 注目コメント
    • 新着コメント
    iww
    『ODR違反になるか否かは「インライン関数として扱われるか」という観点のみが関与します。』

    その他
    deep_one
    『再利用がない個人開発」という前提になればヘッダに実装してしまっても構わないことになりますがいいのでしょうか』良いんじゃないかな。後で後悔すると思うけど。/コンパイル時間という切実なコメントが多かった

    その他
    hirocueki
    hは「こんなことができます」っていうアレ。cppは「こんなことしてます」っていうアレ。混ぜると使う気が失せるアレ。

    その他
    n314
    時間とか設計の問題?単純に.hに書いた実装が.cppからincludeした数だけコピーされるとまずいという言語仕様的な問題だと思ったが。

    その他
    dmnlk
    【C 】なぜヘッダと実装はわけるべきなのでしょうか(.hに実装を書くことは邪道か)|teratail

    その他
    chokovi
    コンパイル時間を気にすることは意外に重要

    その他
    qtamaki
    分けない言語は言語仕様で定義と実装を分けているけどC/C++は実装者に自由に委ねているのかな?

    その他
    nabe1121sir
    言語仕様の問題。ヘッダにあたる部分を自分で作るか自動生成されるかの差かと。ヘッダに実装を書いたら、大きなシステムではアレになるしな(´・ω・`)

    その他
    khtokage
    基本的には分割コンパイルのためだよね。特にC/C++はコンパイル遅いから。 でも確かに他言語ではどんな工夫があるんだろう。IDE任せのビルド以外で。時間あるときに調べてみたい。

    その他
    watermaze
    単にC言語のヘッダのよろしくない仕様を引っ張っているだけで、他のメリットとか言ってるのはC++言語のダメな設計の正当化でしかないと思う。

    その他
    junf
    ヘッダとソースを分離「できる」ようにする事で処理系が効率的にコンパイルできる機会を作っているのであって、分離「しなければならない」わけではない。でも、各言語のコンセプトに従わないと、その言語の良さが失

    その他
    kabisuke
    kabisuke c++固有の問題とプログラミング自体の問題が混在してる感じ。Goはヘッダファイルがないけどコンパイルは早い。ということは処理系の都合が多分に含まれるということ。なのでc++がそういう言語だから、は間違いではない

    2015/06/10 リンク

    その他
    aodifaud09
    main.cppにぜんぶ書いても法的には問題ないんやで。しばらくそれでやってみるといいんでない。

    その他
    p_tan
    p_tan Cとの互換性やらODRやらの言語仕様としての制約と、コンパイル時間っていう実務上の制約と、実装と仕様は分けるべきっていう作法としての制約とがあるよなぁ…

    2015/06/10 リンク

    その他
    nakag0711
    少なくとも地の文で定義するものはヘッダに書いてしまうとincludeしただけ重複して生成されてしまうはずだけど、C++だと例外もあるんだっけ。

    その他
    gabari
    「 例えば、個人開発で、循環参照の問題やコンパイル時間の問題がないようなコード構造であれば」この仮定が成立しない

    その他
    UhoNiceGuy
    JavaやC++はヘッダファイル相当の者をclassファイル?に自動生成してるからある程度コンパイル速度が確保されているんだろうなぁ/ヘッダと実装が別れていた方が隠蔽という面で好ましいと考える自分はオールドタイプ?

    その他
    vanbraam
    "C++は"というより"Cは"という話ではないのだろうか?

    その他
    ystt
    テンプレート周りが鬼門だよなあ。export も C++11 で廃止されちゃったし。

    その他
    truer
    truer 趣味で一人で作ってるとそういう考えになるのもわかる気がする。仕事でやられたらダメ出ししますけども

    2015/06/10 リンク

    その他
    key_amb
    コメントまで読んで勉強になった。

    その他
    progrhyme
    コメントまで読んで勉強になった。

    その他
    you21979
    you21979 仕事で大きなブログラム書いてみればわかるよ。朝来てmakeたたいて終電までに終わらない絶望感

    2015/06/09 リンク

    その他
    peperon_brain
    peperon_brain ヘッダに実装書くとI/F無変更で関数内変更しただけでも下流のソース全部再コンパイルで辛い。ただしtemplateは(ry。あとDLL等にする場合。他にもヘッダ側に#include書くな問題もあるが字数足りなくてC++辛いけど嫌いじゃない

    2015/06/09 リンク

    その他
    mjy
    ヘッダなんて自動生成すればいい。そういうツールも無いことは無い。しかし普及はしない。生産性を考える人はとっくに別の言語を使っているのだろう。

    その他
    SigProcRandWalk
    C#のスタイルをまねたC++のコードを見たことがあるけど、全てインクルードされて一つの巨大cppファイルになるんだよね(*.oも一個だから分割コンパイルができない)。*.hファイルの順番依存を無くすのも大変で正直泣いた

    その他
    mojimojikun
    少なくとも C# とかの頃からはヘッダという概念が無くてもコンパイラ側で吸収できるようになっているので、単にコンパイラ側の実装が言語仕様になってるだけだと思っている。 モダンな言語でヘッダファイルがある言語

    その他
    theatrical
    ビルドに1周間かかるとか、書いてあってつらみがすごい。C++はやっぱりめちゃくちゃ大変そうだ。。

    その他
    gowithyou
    gowithyou Javaもインターフェースベースで開発すると、インタフェースがヘッダファイルみたいになるよ

    2015/06/09 リンク

    その他
    Sampo
    C++を指してヘッダと実装が分かれているとはあんまり言いたくない。フィールド変数丸見えじゃないかと。

    その他

    注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

    アプリのスクリーンショット
    いまの話題をアプリでチェック!
    • バナー広告なし
    • ミュート機能あり
    • ダークモード搭載
    アプリをダウンロード

    関連記事

    【C++】なぜヘッダと実装はわけるべきなのでしょうか(.hに実装を書くことは邪道か) | teratail

    私はC++歴3年の学生趣味プログラマーです。 「C++はなぜヘッダと実装を分けなくてはならないのか/そもそ...

    ブックマークしたユーザー

    • kai_kou2019/01/22 kai_kou
    • masudaK2018/09/27 masudaK
    • tzmfreedom2018/03/25 tzmfreedom
    • tsumuchan2017/09/24 tsumuchan
    • a-hamahama2017/04/04 a-hamahama
    • tyosuke20112016/03/30 tyosuke2011
    • astk_f2016/03/04 astk_f
    • sin16waki2016/01/16 sin16waki
    • dmizuno552015/12/25 dmizuno55
    • shokai2015/11/28 shokai
    • kouba_c2015/09/15 kouba_c
    • valinst2015/08/21 valinst
    • ch12482015/08/19 ch1248
    • komlow2015/07/07 komlow
    • toshi127x2015/06/22 toshi127x
    • mt_mukko2015/06/22 mt_mukko
    • sakapon_jp2015/06/22 sakapon_jp
    • stone7252015/06/18 stone725
    すべてのユーザーの
    詳細を表示します

    同じサイトの新着

    同じサイトの新着をもっと読む

    いま人気の記事

    いま人気の記事をもっと読む

    いま人気の記事 - テクノロジー

    いま人気の記事 - テクノロジーをもっと読む

    新着記事 - テクノロジー

    新着記事 - テクノロジーをもっと読む

    同時期にブックマークされた記事

    いま人気の記事 - 企業メディア

    企業メディアをもっと読む