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

C ++は汎用プログラミング言語です。もともとCの拡張として設計され、構文は似ていますが、現在は完全に異なる言語になっています。このタグは、C ++コンパイラでコンパイルされる(される)コードに関する質問に使用します。特定の標準リビジョン[C ++ 11]、[C ++ 14]、[C ++ 17]または[C ++ 20]などに関連する質問には、バージョン固有のタグを使用します。

10
これは削除できますか?
delete this;delete-statementがクラスのそのインスタンスで実行される最後のステートメントである場合、許可されますか?もちろん、this-pointerで表されるオブジェクトは、newly-created だと確信しています。 私はこのようなことを考えています: void SomeModule::doStuff() { // in the controller, "this" object of SomeModule is the "current module" // now, if I want to switch over to a new Module, eg: controller->setWorkingModule(new OtherModule()); // since the new "OtherModule" object will take the lead, // I want to get rid …

21
C ++でのfloatのround()
単純な浮動小数点丸め関数が必要なので、次のようにします。 double round(double); round(0.1) = 0 round(-0.1) = 0 round(-0.9) = -1 私はmath.hでそれを見つけることができますがceil()、できfloor()ませんround()。 それは別の名前で標準C ++ライブラリに存在しますか、それとも欠落していますか?

4
なぜemplace_backの代わりにpush_backを使用するのですか?
C ++ 11ベクトルには新しい関数がありますemplace_back。push_backコンパイラの最適化に依存してコピーを回避するとは異なり、emplace_back完全な転送を使用して引数をコンストラクターに直接送信し、オブジェクトをインプレースで作成します。私にemplace_backは、すべてのpush_backことができるように思えますが、場合によっては、それがうまくいくこともあります(悪くなることはありません)。 どのような理由で使用する必要がありますpush_backか?
232 c++  c++11  std 

30
メモリリークは大丈夫ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 この質問を改善する CまたはC ++アプリケーションでメモリリークが発生しても許容されますか? アプリケーションのコードの最後の行(たとえば、グローバルオブジェクトのデストラクタ)までメモリを割り当てて使用するとどうなるでしょうか。メモリ使用量が時間の経過とともに増加しない限り、アプリケーションが終了したときに(Windows、Mac、およびLinux)OSを信頼してメモリを解放してもよいですか?OSによって解放されるまでメモリが継続的に使用されていた場合、これを実際のメモリリークと見なしますか? サードパーティのライブラリがあなたにこの状況を強いた場合はどうなりますか?それがどれほど優れていても、サードパーティのライブラリの使用を拒否しますか? 実用上の欠点は1つだけです。つまり、これらの良性のリークは、メモリリーク検出ツールで誤検知として表示されます。
231 c++  c  memory-leaks 

15
C ++で名前空間を適切に使用するにはどうすればよいですか?
私は名前空間ではなく、パッケージが使用されるJavaのバックグラウンドから来ています。私は、一緒に機能するクラスをパッケージにまとめて完全なオブジェクトを作成し、それらを後でそのパッケージから再利用することに慣れています。しかし、今はC ++で作業しています。 C ++で名前空間をどのように使用しますか?アプリケーション全体に単一の名前空間を作成しますか、それとも主要コンポーネントに名前空間を作成しますか?もしそうなら、他の名前空間のクラスからオブジェクトをどのように作成しますか?
231 c++  namespaces 


10
ラムダ関数をテンプレート化できますか?
C ++ 11では、ラムダ関数をテンプレート化する方法はありますか?それともテンプレート化するには本質的に具体的すぎますか? 代わりに、古典的なテンプレートクラス/ファンクタを定義できることを理解していますが、問題はより似ています:言語はテンプレートのラムダ関数を許可しますか?
230 c++  templates  lambda  c++11 

10
QStringをstd :: stringに変換する方法は?
私はこのようなことをやろうとしています: QString string; // do things... std::cout << string << std::endl; しかし、コードはコンパイルされません。qstringの内容をコンソールに出力する方法(デバッグなどの理由で)どのように変換QStringするのstd::stringですか?

30
11000行のC ++ソースファイルをどうするか
プロジェクトにこの巨大な(11000行は巨大ですか?)mainmodule.cppソースファイルがあり、それに触れる必要があるたびに私はうんざりしています。 このファイルは非常に中心的でサイズが大きいため、ますます多くのコードを蓄積し続け、実際に縮小し始めるための良い方法は考えられません。 このファイルは、弊社製品のいくつかの(> 10)メンテナンスバージョンで使用され、積極的に変更されているため、リファクタリングするのは非常に困難です。私がそれを「はじめに」3つのファイルに「単純に」分割するとしたら、メンテナンスバージョンからの変更をマージすることは悪夢になります。また、このような長くて豊富な履歴を持つファイルを分割すると、SCC履歴内の古い変更の追跡とチェックが突然非常に困難になります。 このファイルには基本的に、プログラムの「メインクラス」(メインの内部作業ディスパッチおよび調整)が含まれているため、機能が追加されるたびに、このファイルに影響を与え、ファイルが大きくなるたびに影響を受けます。:-( この状況で何をしますか?SCCワークフローを混乱させることなく、新しい機能を別のソースファイルに移動する方法に関するアイデアはありますか? (ツールに関する注意:でC ++を使用しVisual Studioます。次のように使用AccuRevしSCCますが、SCCここではタイプは特に問題ではないと思います。Araxis Merge実際のファイルの比較とマージに使用します)

5
「静的にリンクされた」および「動的にリンクされた」とはどういう意味ですか?
「静的にリンクされた」および「動的にリンクされた」という用語をよく耳にしますが、C、C ++、またはC#で記述されたコードを指すことがよくあります。彼らは何であり、彼らは何を話しているのですか、そして彼らは何を結び付けていますか?

4
エラー:ケースラベルにジャンプ
私はswitchステートメントの使用を含むプログラムを書きました...しかし、コンパイル時にそれは示しています: エラー:ケースのラベルに移動します。 なぜそれを行うのですか? #include <iostream> #include <cstdlib> #include <fstream> #include <string> using namespace std; class contact { public: string name; int phonenumber; string address; contact() { name= "Noname"; phonenumber= 0; address= "Noaddress"; } }; int main() { contact *d; d = new contact[200]; string name,add; int choice,modchoice,t;//Variable for switch statement …
229 c++ 


4
いつどのようなポインターを使用しますか?
さて、私が生計を立てるためにC ++を最後に書いたのstd::auto_ptrは、すべてのstd libが利用でき、大流行していましたboost::shared_ptr。提供されている他のスマートポインターの種類のブーストを実際に調べたことはありません。C ++ 11が、ブーストで生まれた型のいくつかを提供することを理解していますが、すべてではありません。 では、誰かがどのスマートポインターをいつ使用するかを決定する簡単なアルゴリズムを持っているのでしょうか。できれば、ダムポインター(のような生のポインターT*)とブーストスマートポインターの残りの部分に関するアドバイスを含めます。(このような何かが素晴らしいでしょう)。



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