タグ付けされた質問 「c++」

静的に型付けされた自由形式のマルチパラダイムでコンパイルされた汎用プログラミング言語であるC ++に関する質問。

3
C ++アプリケーションでの依存関係(DI)の注入
依存性注入で遊んでいますが、正しく実行されているかどうかはわかりません。特に、依存関係が注入されたクラスを構築するための正しい方法が何かはわかりません。 クラスBを作成するクラスAがあるとします。クラスBはクラスCに依存し、クラスCはクラスDに依存します。クラスDの作成を担当するのは誰ですか? クラスAの場合もあります。ただし、大規模なシステムでは、クラスAが非常に多数のオブジェクトを作成してアセンブルする場合があります。 D、C、Bを作成する個別のビルダークラス。Aはこのビルダークラスを使用します。 その他のオプション。 また、DIコンテナーについてもよく読みました。ただし、C ++には主要なフレームワークがないようです。また、私が正しく理解すれば、コンテナーがなくてもDIはうまく実行できます。私は正しいですか?

1
効果的なC ++ライブラリのWebサイトとドキュメントの作成
C ++ライブラリを作成することは、他のユーザーが使用できるようにドキュメント化することも意味します。また、ドキュメントの品質は劇的に異なる可能性があります。 C ++ライブラリのWebサイトは、最も効果的になるようにどのように構成すべきですか? 私は、「最も効果的な」ことを、図書館の利害関係者の3つの特定のグループに分割することで構成します。 新規ユーザーは、1つのステップから次のステップに明確に流れる、優れた簡単な導入、ダウンロード、セットアップ、およびドキュメントが必要です。 経験豊富なユーザーは、必要な詳細にすばやくアクセスできる確かなリファレンスと、新しい更新に関する明確な情報が必要です。 新しい寄稿者は、寄稿をライブラリーに取り込むために実行する必要があるステップをカバーする方法をガイドする必要があります。 私は彼らが見たり使用したりするものにとても満足する方法を見つけたいと思います。この質問は、プロのプログラミングとユーザーエクスペリエンスとの間のちょっとしたクロスです。 特定の例では、Boostはライブラリの最高のコレクションの1つですが、初期インストール、リファレンスドキュメント、および貢献方法の把握はやや混乱を招く可能性があります。 一方、cppreference.comとSGI STLのドキュメントは、説明、リンク、および例があり、非常に明確で有用であることがわかりました。 例は単なる意見であり、他の例は異なる場合がありますが、それは私が質問している質問にコンテキストを与えるのに役立ちます。

1
依存関係をできるだけ少なくして科学ソフトウェアを配布するにはどうすればよいですか?
私の研究の一環として、他人に配布する必要のないPythonおよびMATLABコードを多数記述しています。ソフトウェアを配布する必要がある場合でも、PythonとMATLABの両方が解釈されるため、共有が比較的簡単になります。 今、私はC ++で配布したいソフトウェアを書いています。私は自分のマシンでソフトウェアをコンパイルする方法を理解していますが、他の人にソフトウェアを提供するために何をする必要があるかを理解していません。 まず、プロジェクトの詳細:視覚化を計算して表示するためのコードを書いています。プロジェクトはグラフベースなので、LEMONグラフライブラリを使用しています。視覚化を表示する目的でVTKとOpenGLの実装を調査しています。私のソフトウェアを使用できるように、それらの環境のユーザー向けにPythonおよびMATLABバインディングを記述したいと思います。また、WindowsおよびLinuxバージョンを作成したいと思います(OS Xについてはまだ考えていません...)。 それでは、レモングラフライブラリを例に考えてみましょう。これは、小さな共有オブジェクトを伴う一連のヘッダーです。開発システムでは、CMakeを使用してライブラリをコンパイルし、プロジェクトにリンクします。 次に、Windowsで実行している誰かにソフトウェアを提供したいとします。私は彼らがインストーラーをダウンロードし、ボタンを1つか2つクリックして、すべての面倒を見てもらいたいと思っています。レモンライブラリやOpenGLのインストールについて心配してほしくありません。彼らは意図的に何かをコンパイルする必要はありません。これは可能ですか? 私はそれを感じていますが、参照を検索するときに不足します。Windowsでバイナリをコンパイルすると、Windows OSを実行している誰にでもそのバイナリを配布できるはずだという漠然とした考えがあります。しかし、私が使用するライブラリはどうですか?Windowsでそれらを静的にリンクする必要があると思います。これで、依存関係の問題が解決されます。しかし、私の心の奥で、静的リンクは良い習慣ではないことを読んだことがあります(または、これはLinuxだけですか?) ご存知のように、私は少し迷っています。私は正しい方向に微調整し、何かを知っていたら読んだ参考文献をいただければ幸いです!

3
C ++ Web開発:ミニマリストのスタートを望む[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 6年前休業。 現在、コンピュータサイエンスの学位を取得しており、自分のWebサーバーライブラリを構築したいと考えています。問題?私がWebサイトとのやり取りで行ったすべての検索は、情報の送受信の基本を説明する代わりに、「他の人が作成したこのライブラリを使用する」ことを示しています。 私は多くを求めているわけではありません-Webページに1つの英数字を入力し、ボタンを押して、その標準の1バイトの情報を非標準の助けなしにC ++プログラムに送信したいのです。図書館。
8 c++  web  server 

5
コンパイラのソースコードを読むのは良い考えですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 6年前休業。 私はコンピュータサイエンスを専攻している大学のジュニアです。たくさんのコードを書くだけでなく、他の人が書いたソースコードを読み始めて、コーディングスキルを向上させ、さまざまな方法でより良い方法や異なる方法を学びたいと思っています。C ++コンパイラのコードの重要な部分のいくつかを読み始めるべきだと思っていました。これは私が2つのことをするのに役立つと思います: コンパイラは難しいので、コードはこの難しい問題の解決策を表すので、エレガントなコーディングプラクティスを学びます。 これは、最もよく使用されている言語のコンパイル方法、詳細、各エラーの生成方法、コードの解析方法についても理解し、言語の仕様を理解するのに役立ちます。 これは良いアイデアだと思いますか?
8 c++  compiler 

2
C ++でのタスクベースのプログラミングには、新しい言語標準機能が必要ですか?
だから私はGoingNative 2012:誰もが質問できるインタラクティブパネルでこれらすべてのC ++マスターと共にYoutubeでこのビデオを見ました。 これは私が話していたビデオです:GoingNative 2012-1日目-インタラクティブパネル:ネイティブであることの重要性 そして時間0:24:00に誰かが非常に興味深い質問をしました: 私たちはしばらくの間、pthreadを使用したり、Windowsスレッドを使用したりして並行プログラミングを行ってきました。C++とCが並行プログラミングに追いついてうれしいですが、すでに5年または10年遅れているように思えます何年もの間、現在、これらの強力なマルチコアがすべてあり、これらのマルチコアのプログラミングはスレッドに基づくべきではなく、タスクベースである必要があり[...]、MicrosoftにはPPLライブラリなどがあり、これは完全にC ++標準には反映されていません。[...]私が恐れている唯一のことは、標準がスレッドにロックされ、タスクベースのプログラミングに移行するのが非常に困難になることです... 今、私はこれらの概念にかなり慣れていないので、少し混乱しています。実際にタスクベースのプログラミングとは何ですか。この用語は、ロックフリープログラミングと同じ意味ですか?これらの2つの同等の用語ですか、それらの間にリンクはありますか?


4
インタープリターをコンパイラーに変換しますか?
まず、これが私の前に他の多くのプログラマーから寄せられた質問であることを私は知っています。しかし、私を助けることができる使用可能なリソースを見つけることができませんでした。 まあ、私は「ライト」と呼ばれるプログラミング言語を作成しています。構文はpythonに匹敵しますが、厳密なオブジェクト指向のコンセプトがあります。 私はまだこの言語用のインタープリター(C ++で)を作成しましたが、私の問題はこれを実行可能ファイルに変換する方法です。(または単に:どのようにコンパイラーを作るのですか?) ご清聴ありがとうございました PS:私は非常に古いチュートリアルへのリンクをいくつか見つけましたが、それはパスカルです... 編集:まあ、まあ。今、私はC ++に適したチュートリアルを見つけました。プロジェクトについて:いくつかの変更がありました。現在、この言語は「Q」と呼ばれています。(kju Dot)。
8 c++  compiler 

3
C ++でテーブルを保存する最良の方法は何ですか
C4.5アルゴリズムのわずかに変更されたバージョンを使用して、C ++で決定木をプログラミングしています。各ノードはデータセットの属性または列を表し、属性の可能な値ごとに子があります。 私の問題は、各ノードにサブセットを使用する必要があるため、行と列のサブセットのみを選択する簡単な方法が必要であることを念頭に置いて、トレーニングデータセットを格納する方法です。 主な目標は、可能な限り最もメモリと時間効率の良い方法で(優先度の高い順に)実行することです。 私が考えた最善の方法は、配列の配列(またはstd :: vector)またはそのようなものを持ち、各ノードにリスト(配列、ベクトルなど)または何かcolumn,line(おそらくタプル)を持つことですそのノードに有効なペア。 私はこれを行うためのより良い方法があるはずです、何か提案はありますか? 更新:私が必要なのは次のようなものです: 初めに私はこのデータを持っています: Paris 4 5.0 True New York 7 1.3 True Tokio 2 9.1 False Paris 9 6.8 True Tokio 0 8.4 False しかし、2番目のノードでは、次のデータが必要です。 Paris 4 5.0 New York 7 1.3 Paris 9 6.8 そして、3番目のノードの場合: Tokio 2 9.1 Tokio 0 8.4 しかし、最大数百の列を持つ数百万のレコードのテーブルがあります。 …

4
いつ名前をグローバル名前空間にインポートするのですか?(x :: y、x from yなどを使用)
私は今から約10年間、さまざまな言語でプログラミングを行っています。また、グローバルネームスペース(using x::yC ++やfrom x import yPythonなど)に何かをインポートするのが適切である場合はまだわかりません。そのため、ほとんど実行しません。 それが私が使用できる変数名のセットを制限するという理由だけでさえ、それはほとんど常に私にとって悪い考えのように思えます。例:使用する場所using namespace std;またはusing std::string;C ++でstring、変数名として使用できなくなりました(文字列ユーティリティ関数など)。 しかし、私は疑問に思っています。グローバルネームスペースに名前をインポートすることが本当に意味があるいくつかの状況はありますか?経験則はありますか?

4
ACオブジェクトのC ++ラッパーの優れたデザインパターン
非常に使いにくいだけでなく、非常に便利なCライブラリの周りに拡張可能なC ++ラッパーを作成しました。目標は、オブジェクトの割り当て、プロパティの公開、オブジェクトの割り当て解除、セマンティクスのコピーなどのためにc ++の便利さを持たせることです... 問題はこれです。Cライブラリは、基になるオブジェクト(オブジェクトへのポインタ)を必要とする場合があり、クラスデストラクタは、基になるメモリを破棄しないでください。ほとんどの場合、デストラクタは基になるオブジェクトの割り当てを解除する必要があります。bool hasOwnershipクラスにフラグを設定して、デストラクタ、代入演算子などが、基礎となるメモリを解放する必要があるかどうかがわかるように実験しました。ただし、これはユーザーにとって煩雑であり、別のプロセスがそのメモリをいつ使用するかを知る方法がない場合もあります。 現在、基本的な型と同じ型のポインターから割り当てが行われる場合に、hasOwnershipフラグを設定するように設定しています。オーバーロードされたコンストラクターがcライブラリーからのポインターを使用して呼び出されたときも、同じことを行います。それでも、ユーザーがオブジェクトを作成し、それをc_apiを呼び出す関数の1つに渡した場合、これはまだ処理されません。ライブラリは、後で使用するためにポインターを格納します。オブジェクトを削除した場合、Cライブラリでsegfaultが発生することは間違いありません。 このプロセスを簡略化するデザインパターンはありますか?多分ある種の参照カウント?

4
C ++のJavaスタイルクラス
私はこの記事に出くわし、最初は少し奇妙に見えるc ++でのコーディングのスタイルを提案しました。しかし、それを読んで少し考えた後、私は本当にそれを試してみることを考えています。 最も魅力的な利点は、メソッドのリファクタリングの容易さです。新しいクラスを作成している間、私は常にメソッド名やパラメーターなどを変更していることに気づき、c ++では2つのファイル(.h、.cpp)のメソッド名を変更しなければならないのは非常に面倒です。 私はこのスタイルに問題があることを見つけようとしましたが、経験豊富なc ++プログラマーにとってコードが実際に奇妙に見えて感じられるという事実は別として、大きな欠陥を見つけることはできません。しかし、私は非常に経験の浅いc ++プログラマなので、ここにいる誰かが潜在的な危険について私に警告してくれることを願っています。 だから私の質問は: このスタイルのコーディングを使用することの重大な欠点はありますか?

4
Android開発用のC / C ++を知ることは重要ですか?
Java(C ++ / NDKなし)のみを使用して、高速で美しいAndroidアプリ(3D開発を含む)を構築することはできますか? Android開発者の職位要件(求人)を探すと、C / C ++ / NDKの知識が非常に重要であることがわかりました。一部の企業では、C ++(OpenGL)のみを使用してテストタスクを構築する必要があります。
8 java  c++  c  android 

2
コードコンプリート2のこの段落は逆ですか、それとも誤解していますか?
第13章では、ポインターについて話すときに段落があります。 ただし、場合によっては、参照渡しのセマンティクス、つまり、渡されたオブジェクトを値渡しの実装で変更しない、つまり、コピーではなく実際のオブジェクトを渡す必要がある場合があります。 著者は間違いを犯し、2つを混同したようです。これは本当ですか、それとも私は彼が正しく言っていることを理解していませんか?

2
C ++ Webスタックがありますか?
Javaは、JVMおよびTomcat(またはGlassfishな​​ど)で実行されるjspおよびサーブレット(またはSpringなどのフレームワーク)です。 C#はASPであり、C#はdot.netフレームワークとIISで実行されますか?(これに関する経験はありません。私の用語を修正して改善してください) C ++に相当するものはありますか?Javaサーブレット/コントローラからC ++を喜んで呼び出すことができましたが、Webフロントエンドを使用してC ++でビジネスロジックを作成するための既存のフレームワークとライブラリがそこにあるかどうか疑問に思いました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.