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

共同編集されたコミュニティ編集のC ++ FAQを提供します

1
Definitive C ++ Bookガイドとリスト
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 OverаэтотвопросестьответынаStack Overflowнарусском:КнигииучебныересурсыпоС++ この質問は、毎年発行されている数十の悪いC ++の本の中からいくつかの真珠を集めようとしています。 他の多くのプログラミング言語は、インターネットで見つけられるチュートリアルから頻繁に取り上げられますが、よく書かれたC ++の本を勉強せずにすばやくC ++を取り上げることができるものはほとんどありません。これを行うには大きすぎて複雑です。実際、それは非常に大きく複雑なので、非常に多くの非常に悪いC ++の本が世に出ています。そして、私たちは悪いスタイルについて話しているのではなく、明らかに明白な事実上のエラーをスポーツすることや、非常に悪い悪いプログラミングスタイルを促進することなどです。 承認された回答を編集して、高品質の本とおおよそのスキルレベルを提供してください。できれば 、C ++チャットルームでの追加について話し合った後で行って ください。(常連が推薦に同意しない場合、常連は無慈悲にあなたの仕事を取り消すかもしれません。)あなたが個人的に読んだ/恩恵を受けた各本についての短い宣伝文/説明を追加してください。品質、見出しなどを自由に議論してください。基準を満たす書籍がリストに追加されます。CおよびC ++ユーザー協会(ACCU)によるレビューがある書籍には、レビューへのリンクがあります。 *注意:FAQおよびその他のリソースは、C ++タグ情報および以下にあります。c ++-よくある質問。
4243 c++  c++-faq 


30
なぜ「ネームスペースstdを使用する」のですか?悪い習慣と考えていますか?
私は書くことを他人に言われてきたusing namespace std;コードでは間違っている、と私は使うべきであるとstd::coutし、std::cin代わりに直接。 なぜusing namespace std;悪い習慣と見なされますか?非効率的ですか、あいまいな変数(std名前空間内の関数と同じ名前を共有する変数)を宣言するリスクがありますか?パフォーマンスに影響しますか?



7
演算子のオーバーロードの基本的なルールとイディオムは何ですか?
注:回答は特定の順序で与えられましたが、多くのユーザーは、与えられた時間ではなく投票に従って回答を並べ替えるため、最も意味のある順序で回答のインデックスを次に示します。 C ++での演算子のオーバーロードの一般的な構文 C ++での演算子オーバーロードの3つの基本ルール 会員と非会員の決定 オーバーロードする一般的な演算子 代入演算子 入出力演算子 関数呼び出し演算子 比較演算子 算術演算子 配列の添え字 ポインタのような型の演算子 変換演算子 新規および削除のオーバーロード (注:これは、Stack OverflowのC ++ FAQへのエントリになることを目的としています。このフォームでFAQを提供するという考えを批評したい場合は、これをすべて開始したメタへの投稿がそのための場所になります。回答その質問は、C ++チャットルームで監視されます。ここでは、FAQのアイデアが最初から始まっているため、アイデアを思いついた人があなたの答えを読む可能性が非常に高くなります。

5
コピーアンドスワップイディオムとは何ですか?
このイディオムとは何ですか?いつ使用する必要がありますか?どの問題を解決しますか?C ++ 11を使用するとイディオムは変わりますか? 多くの場所で言及されていますが、「それは何か」という単一の質問と回答はありませんでした。これは以前に言及された場所の部分的なリストです: 好きなC ++コーディングスタイルのイディオムは何ですか:コピースワップ C ++でのコンストラクターと=演算子のオーバーロードのコピー:一般的な関数は可能ですか? コピーエリクションとは何か、そしてそれがコピーアンドスワップイディオムをどのように最適化するか C ++:オブジェクトの配列を動的に割り当てる?


17
テンプレートをヘッダーファイルにのみ実装できるのはなぜですか?
C ++標準ライブラリからの引用:チュートリアルとハンドブック: 現在、テンプレートを使用する唯一の移植可能な方法は、インライン関数を使用してヘッダーファイルにテンプレートを実装することです。 どうしてこれなの? (明確化:ヘッダーファイルは唯一のポータブルソリューションではありませんが、最も便利なポータブルソリューションです。)
1778 c++  templates  c++-faq 

12
移動セマンティクスとは何ですか?
C ++ 0xに関するScott Meyersとのソフトウェアエンジニアリングのラジオポッドキャストインタビューを聞いたところです。新機能のほとんどは私にとって理にかなっており、1つを除いて、実際にC ++ 0xに興奮しています。私はまだ移動セマンティクスを取得しません...それは正確には何ですか?

21
オブジェクト自体ではなくポインタを使用する必要があるのはなぜですか?
私はJavaの出身で、C ++でオブジェクトの操作を開始しました。しかし、私に起こったことの1つは、人々はしばしばオブジェクト自体ではなくオブジェクトへのポインタを使用することです。たとえば、次の宣言: Object *myObject = new Object; のではなく: Object myObject; または、関数を使用する代わりにtestFunc()、次のようにしましょう: myObject.testFunc(); 私たちは書く必要があります: myObject->testFunc(); しかし、なぜこのようにする必要があるのか​​理解できません。メモリアドレスに直接アクセスできるので、効率と速度に関係していると思います。私は正しいですか?
1602 c++  c++11  pointers  c++-faq 

30
未定義の参照/未解決の外部シンボルエラーとは何ですか?どのように修正しますか?
OverаэтотвопросестьответынаStack Overflowнарусском:Ссылкананеразрешенныйвнешнийсимвол(возможниныепререв) 未定義の参照/未解決の外部シンボルエラーとは何ですか?一般的な原因は何ですか?それらを修正/防止する方法は? 自由に編集/追加してください。


11
右辺値、左辺値、x値、glvalues、およびprvaluesとは何ですか?
C ++ 03では、式は右辺値または左辺値のいずれかです。 C ++ 11では、式は次のようになります。 右辺値 左辺値 xvalue 輝かしい prvalue 2つのカテゴリが5つのカテゴリになりました。 これらの新しい表現のカテゴリは何ですか? これらの新しいカテゴリは、既存の右辺値および左辺値のカテゴリとどのように関連していますか? C ++ 0xの右辺値と左辺値のカテゴリは、C ++ 03と同じですか? これらの新しいカテゴリが必要なのはなぜですか?されているWG21の神々は、ちょうど私たち単なる人間を混同しようとしていますか?
1356 c++  expression  c++-faq  c++11 

6
「テンプレート」と「タイプ名」のキーワードをどこに、なぜ配置しなければならないのですか?
テンプレートでは、どこで、なぜ私は配置する必要がありますtypenameし、template依存名に? とにかく依存名は正確には何ですか? 私は次のコードを持っています: template <typename T, typename Tail> // Tail will be a UnionNode too. struct UnionNode : public Tail { // ... template<typename U> struct inUnion { // Q: where to add typename/template here? typedef Tail::inUnion<U> dummy; }; template< > struct inUnion<T> { }; }; template <typename T> // …

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