問題タブ [c++-faq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1392 参照

c++ - basic_ios のフラグのセマンティクス

rdstate()、、、、およびフラグgood()が 、bad()、およびでどのように表現されているかに、eof()私は繰り返し困惑しています。fail()basic_ios::operator!operator booloperator void*

誰かが私を悲惨な状態から解放し、これを説明してくれませんか?

0 投票する
6 に答える
8534 参照

c++ - 初期化されていない変数を出力すると、奇妙な値が表示されるのはなぜですか?

次のコードでは、変数に初期値がなく、この変数を出力しました。

出力: 2514932

出力: 1.23769e-307

これらの出力数値がわかりません。誰でもこれを説明できますか?

0 投票する
6 に答える
24406 参照

c++ - std::list::remove メソッドは、削除された各要素のデストラクタを呼び出しますか?

私はコードを持っています:

std::list::removeメソッドは、削除された各要素のデストラクタ (およびメモリの解放) を呼び出しますか? もしそうなら、どうすればそれを避けることができますか?

0 投票する
7 に答える
955715 参照

c++ - 演算子のオーバーロードの基本的なルールとイディオムは何ですか?

注: 回答は特定の順序で提供されていますが、多くのユーザーは、回答が提供された時間ではなく、投票に従って回答を並べ替えるため、最も意味のある順序で回答のインデックスを次に示します。

(注: これはStack Overflow の C++ FAQへのエントリであることを意図しています。このフォームで FAQ を提供するという考えを批判したい場合は、すべての始まりとなった meta への投稿がそれを行う場所になります。回答への回答その質問は、FAQ のアイデアが最初に始まったC++ チャットルームで監視されているため、アイデアを思いついた人にあなたの回答が読まれる可能性が非常に高くなります。)

0 投票する
5 に答える
12614 参照

c++ - 未定義の動作とシーケンスポイントがリロードされました

このトピックを次のトピックの続編と考えてください。

前の記事
未定義の動作とシーケンスポイント

この面白く複雑な表現をもう一度見てみましょう(斜体のフレーズは上記のトピック* smile *から取られています):

これは未定義動作を引き起こすと言います。これを言うとき、私たちは暗黙のうちにタイプが組み込みタイプの1つであると仮定していると思います。i

タイプiがユーザー定義タイプの場合はどうなりますか?そのタイプは、この投稿の後半で定義されていると言いますIndex(以下を参照)。それでも未定義動作を呼び出しますか?

はいの場合、なぜですか?それは書くことと同等ではありませんi.operator+=(i.operator++());か、あるいは構文的に単純 i.add(i.inc());ですか?または、それらも未定義動作を呼び出しますか?

いいえの場合、なぜですか?結局のところ、オブジェクトは連続するシーケンスポイント間で2回i変更されます。経験則を思い出してください。式は、連続する「シーケンスポイント間でオブジェクトの値を1回だけ変更できます。また、 が式の場合、undefined-behaviorを呼び出す必要があります。その場合、同等のもので あり、undefined-behaviorを呼び出す必要があります。真実ではないようです!(私が理解している限り)i += ++ii.operator+=(i.operator++());i.add(i.inc());

または、そもそも表現i += ++iではないですか?もしそうなら、それは何ですか、そして表現の定義は何ですか?

それが式であると同時に、その動作明確に定義されている場合、式に関連付けられているシーケンスポイントの数は、式に含まれるオペランドのタイプに何らかの形で依存することを意味します。私は(部分的にでも)正しいですか?


ちなみに、この表現はどうですか?

応答でもこれを考慮する必要があります(その動作を確実に知っている場合)。:-)


C ++ 03で明確に定義されていますか?結局のところ、これはこれです、


0 投票する
3 に答える
28031 参照

c++ - このポインタを介してテンプレートの基本クラスのメンバーにアクセスする必要があるのはなぜですか?

以下のクラスがテンプレートでない場合は、クラスに含めることができxますderived。ただし、以下のコードでは、使用する必要がありますthis->x。なんで?

0 投票する
5 に答える
133749 参照

c++ - C++ で配列を使用するにはどうすればよいですか?

C++ は C から配列を継承し、事実上あらゆる場所で使用されています。C++ は、使いやすく、エラーが発生しにくい ( std::vector<T>C++98std::array<T, n>以降およびC++11以降) 抽象化を提供するため、配列の必要性は C ほど頻繁には発生しません。コードを作成したり、C で記述されたライブラリを操作したりする場合は、配列がどのように機能するかをしっかりと把握する必要があります。

この FAQ は 5 つの部分に分かれています。

  1. 型レベルの配列と要素へのアクセス
  2. 配列の作成と初期化
  3. 割り当てとパラメーターの受け渡し
  4. 多次元配列とポインターの配列
  5. 配列を使用する際のよくある落とし穴

この FAQ に何か重要な情報が欠けていると思われる場合は、回答を作成し、追加部分としてここにリンクしてください。

以下のテキストでは、「配列」は「C 配列」を意味し、クラス テンプレートではありませんstd::array。C 宣言子の構文に関する基本的な知識があることを前提としています。new以下に示すようにとを手動で使用するdeleteことは、例外に直面すると非常に危険であることに注意してください。ただし、それは別の FAQのトピックです。


(注: これはStack Overflow の C++ FAQへのエントリであることを意図しています。FAQ をこのフォームで提供するという考えを批判したい場合は、すべての始まりとなった meta への投稿がそれを行う場所になります。回答への回答その質問は、FAQ のアイデアが最初に始まったC++ チャットルームで監視されているため、アイデアを思いついた人にあなたの回答が読まれる可能性が非常に高くなります。)

0 投票する
4 に答える
88987 参照

c++ - C++ でクラスのメンバーを参照するためにドット、矢印、または二重コロンを使用するのはいつですか?

他の C 派生言語 (Java や C# など) から C++ に移行すると、C++ にはクラスのメンバーを参照する 3 つの方法a::b( 、a.b、および) があることに最初は非常に混乱しますa->b。これらの演算子のどれをいつ使用しますか?

_(注: これは [Stack Overflow の C++ FAQ](https://stackoverflow.com/questions/tagged/c++-faq) へのエントリであることを意図しています。FAQ をこの形式で提供するという考えを批判したい場合、[このすべてを開始したメタへの投稿](https://meta.stackexchange.com/questions/68647/setting-up-a-faq-for-the-c-tag) がそれを行う場所になります. その質問への回答は [C++ チャットルーム](https://chat.stackoverflow.com/rooms/10/c-lounge) で監視されており、FAQ のアイデアが最初に始まった場所であるため、あなたの回答は非常に可能性が高いです。アイデアを思いついた人に読んでもらうために。)_
0 投票する
6 に答える
126021 参照

c++ - C++11 の右辺値とムーブ セマンティクスの混乱 (return ステートメント)

C++ 11 の右辺値参照と移動セマンティクスを理解しようとしています。

これらの例の違いは何ですか? また、ベクトル コピーを実行しないのはどれですか?

最初の例

2 番目の例

3 番目の例

0 投票する
3 に答える
31198 参照

c++ - どのような C++ スマート ポインターの実装が利用可能ですか?

比較、長所、短所、およびいつ使用するか?

これはガベージ コレクション スレッドから派生したもので、単純な答えだと思っていたものが、特定のスマート ポインターの実装に関する多くのコメントを生成したため、新しい投稿を開始する価値があるように思われました。

最終的に問題となるのは、C++ でのスマート ポインターのさまざまな実装と、それらをどのように比較するかということです。単純な長所と短所、または例外と、そうでなければうまくいくと思われるものへの落とし穴です。

私が使用した、または少なくとも大まかに説明して、以下の回答として使用することを検討したいくつかの実装と、100%正確ではない可能性があるそれらの相違点と類似点の理解を投稿しました。

目標は、いくつかの新しいオブジェクトとライブラリについて学習するか、すでに広く使用されている既存の実装の使用法と理解を修正し、他の人にとって適切なリファレンスになることです。