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

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

30
vtableへの未定義の参照
C ++プログラムをビルドすると、エラーメッセージが表示される 'vtableへの未定義の参照... この問題の原因は何ですか?どうすれば修正できますか? たまたま、次のコード(問題のクラスはCGameModuleです)でエラーが発生し、私の人生では問題が何であるかを理解できません。最初は、仮想関数に体を与えるのを忘れることに関係があると思っていましたが、私の知る限り、すべてがここにあります。継承チェーンは少し長いですが、関連するソースコードを次に示します。他にどのような情報を提供すべきかわかりません。 注:コンストラクターがこのエラーが発生しているようです。 私のコード: class CGameModule : public CDasherModule { public: CGameModule(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, CDasherInterfaceBase *pInterface, ModuleID_t iID, const char *szName) : CDasherModule(pEventHandler, pSettingsStore, iID, 0, szName) { g_pLogger->Log("Inside game module constructor"); m_pInterface = pInterface; } virtual ~CGameModule() {}; std::string GetTypedTarget(); std::string GetUntypedTarget(); bool DecorateView(CDasherView *pView) …
357 c++  gcc  g++ 

17
なぜポインタを使用するのですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 これは本当に基本的な質問ですが、高級言語でいくつかのプロジェクトをコーディングした後、基本的なC ++プログラミングから始めました。 基本的に私は3つの質問があります: 通常の変数でポインタを使用する理由 いつ、どこでポインタを使用すればよいですか? 配列でポインタをどのように使用しますか?
356 c++  c  pointers 

30
C ++で 'friend'を使用する必要があるのはいつですか?
私はC ++のFAQを読んでいて、そのfriend宣言に興味がありました。個人的には使用したことがありませんが、言語を探求することに興味があります。 使用の良い例は何friendですか? FAQをもう少し読むと、 << >>演算子をオーバーロードして、それらのクラスの友達として追加です。しかし、これがカプセル化を壊さないかどうかはわかりません。これらの例外はいつOOPである厳密性の範囲内にとどまることができますか?
354 c++  oop  encapsulation  friend 

28
最新のC ++ 11 / C ++ 14 / C ++ 17および将来のC ++ 20の文字列の列挙型
他のすべての同様の質問とは異なり、この質問は新しいC ++機能の使用に関するものです。 2008年 c C ++列挙型を文字列に変換する簡単な方法はありますか? 2008年 c 列挙型の変数をCの文字列として使用する簡単な方法は? 2008年 C ++ C ++列挙型を文字列に簡単にマップする方法 2008年 C ++ Cの識別子と文字列の両方を作成していますか? 2008年 C ++ C ++列挙型を文字列に変換する簡単なスクリプトはありますか? 2009年 C ++ C ++でフラグとして列挙型を使用する方法? 2011年 C ++ 列挙型変数を文字列に変換する方法は? 2011年 C ++ 列挙型から文字列C ++ 2011年 C ++ 列挙型変数を文字列に変換する方法は? 2012年 c Cで列挙名を文字列に変換する方法 2013 c Cでの条件付きでコンパイルされた列挙型の文字列化 多くの回答を読んだ後、私はまだ何も見つかりませんでした: C ++ …
354 c++  string  enums  c++17  c++20 

11
クラス間の循環依存によるビルドエラーを解決する
異なるヘッダーファイル内のC ++クラス間の循環依存関係につながるいくつかの悪い設計決定(他の人が行った:)が原因で、C ++プロジェクトで複数のコンパイル/リンカーエラーに直面している状況によく気づきます(発生する可能性もあります)同じファイル内)。しかし、幸いにも(?)この問題は頻繁には起こらないため、次回この問題が再び発生するときのために、この問題の解決策を思い出すことはできません。 したがって、将来のリコールを容易にするために、代表的な問題とその解決策を掲載します。より良い解決策はもちろん大歓迎です。 A.h class B; class A { int _val; B *_b; public: A(int val) :_val(val) { } void SetB(B *b) { _b = b; _b->Print(); // COMPILER ERROR: C2027: use of undefined type 'B' } void Print() { cout<<"Type:A val="<<_val<<endl; } }; B.h #include "A.h" class B …



9
なぜ参照のベクトルを作成できないのですか?
私がこれをするとき: std::vector<int> hello; すべてがうまくいきます。ただし、代わりに参照のベクトルにすると、次のようになります。 std::vector<int &> hello; 次のような恐ろしいエラーが発生します エラーC2528: 'ポインター':参照へのポインターが不正です 構造体への一連の参照をベクトルに入れたいので、ポインターをいじる必要はありません。なぜベクトルはこれについてかんしゃくを投げているのですか?代わりにポインタのベクトルを使用する唯一のオプションはありますか?

7
ベース仮想デストラクタを明示的に呼び出す必要がありますか?
C ++でクラスをオーバーライドする場合(仮想デストラクタを使用)、継承するクラスで仮想としてデストラクタを再度実装しますが、基本デストラクタを呼び出す必要がありますか? もしそうなら、それはこのようなものだと思います... MyChildClass::~MyChildClass() // virtual in header { // Call to base destructor... this->MyBaseClass::~MyBaseClass(); // Some destructing specific to MyChildClass } 私は正しいですか?
350 c++  destructor 

6
`enable_shared_from_this`の有用性は何ですか?
enable_shared_from_thisBoost.Asioの例を読んでいる間、私は偶然見つけましたが、ドキュメントを読んだ後でも、これを正しく使用する方法に迷っています。誰かが私に例を挙げて、このクラスを使用するときの説明が理にかなっていますか?
349 c++  boost  boost-asio  tr1 

6
std :: unique_lock <std :: mutex>またはstd :: lock_guard <std :: mutex>?
StackаэтотвопросестьответынаStack Overflowнарусском:Чемstd :: unique_lockотличаетсяотstd :: lock_guard? 2つの使用例があります。 A. 2つのスレッドによるアクセスをキューに同期させたい。 B. 2つのスレッドによるキューへのアクセスを同期し、条件変数を使用したいのは、一方のスレッドが、もう一方のスレッドによってコンテンツがキューに格納されるのを待つためです。 ユースケースAIについては、を使用しstd::lock_guard&lt;&gt;たコード例を参照してください。使用例については、BIを使用したコード例を参照してくださいstd::unique_lock&lt;&gt;。 この2つの違いと、どのユースケースでどちらを使用すればよいのですか?

5
__attribute __((constructor))はどのように正確に機能しますか?
セットアップが必要なことは明らかです。 正確にはいつ実行されますか? 括弧が2つあるのはなぜですか? ある__attribute__機能は?マクロ?構文? これはCで動作しますか?C ++? 機能する関数は静的である必要がありますか? いつ__attribute__((destructor))実行しますか? Objective-Cの例: __attribute__((constructor)) static void initialize_navigationBarImages() { navigationBarImages = [[NSMutableDictionary alloc] init]; } __attribute__((destructor)) static void destroy_navigationBarImages() { [navigationBarImages release]; }
347 c++  objective-c  c  gcc 


6
C ++ではどのXMLパーサーを使用すればよいですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか? Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 解析が必要なXMLドキュメントがある、またはXMLドキュメントを作成してテキスト(ファイルまたはメモリ)に書き込む必要があります。C ++標準ライブラリにはこのためのライブラリがないため、何を使用すればよいですか? 注:これは、C ++-FAQスタイルの決定的な質問であることを意図しています。そう、それは他のものの複製です。他の質問はもう少し具体的なものを求める傾向があったため、私はそれらの他の質問を単に適切に使用しませんでした。この質問はより一般的です。
344 c++  xml-parsing  c++-faq 

16
C ++参照変数を返す習慣は悪ですか?
これは少し主観的なものだと思います。意見が全会一致になるかどうかはわかりません(参照が返されるコードスニペットをたくさん見ました)。 この質問に対するコメントによると、参照の初期化に関して、参照を返すことは悪いことです。なぜなら、[理解しているように]参照を削除するのを忘れやすく、メモリリークにつながる可能性があるためです。 これは、私が例を考えて(私が物事を想像しているのでない限り)、かなりの数の場所でこれを行ったので心配です...誤解していませんか?悪か?もしそうなら、どれだけ悪か? ポインターと参照の混合バッグと、C ++を初めて使用するという事実、および何をいつ使用するかについての完全な混乱のため、アプリケーションはメモリリークの地獄である必要があると思います... また、メモリリークを回避する最良の方法として、スマート/共有ポインターの使用が一般的に受け入れられていることも理解しています。
341 c++  reference  c++-faq 

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