型の自由な命名規則が適用されます。プリプロセッサマクロがすでに定義されています。モードで実行している)コンパイラに見つけられるでしょう。関数は正しく守られ、システムヘッダファイルを均衡の外に離します。セグメントから離れる前のもう一つの問題があります。すべきと感じるでしょう。システムヘッダファイルをインクルードする必要があるからです。十分に理解しないものがまだいくつかあります。するためのもっとも安全な場所は、ヘッダファイルのインクルード階層のなかでできる限り低い場所です。このフレーズをシステムコードにより近い低位置のヘッダファイルへ入れてください。ヘッダファイルの中に入れてはいけません。ヘッダファイルの中です。標準が時間をかけて変更されているため生じた問題です。A::foo())です。ほとんどのコンパイラはこの新しい標準を用います。いくつかのコンパイラ(例えば、HP-UX)は未だに古い標準を使っています。いくつかのほかのコンパイラ(例えば、gcc)は新しいルールを使っていますが、古いものも許容しています。使っていると警告を出すでしょう。関数の後に使われた場合に不明瞭となるでしょう。ループの外側で行うことが望ましいでしょう。}また、ループのための変数をその後ろで再利用しても、かわりに別の方法で変数を再宣言してもいけません。これは現在の標準で許容されていますが、多くのコンパイラはエラーとして扱います。...}さもなければ、自動的な配列を保持することもできます。...};これは驚きです。コンパイラはインラインメンバ関数のハンドリングでとても悪い挙動をします。unimplemented(ごめんなさい、実装されていません)"とエラーメッセージを出して音を上げがちです。文を持つインラインです。いう結果に終わらせてしまうだろう要素があります。コードのほとんどはインライン関数を使っていないことがわかるでしょう。インライン関数をすべて追い払うことをルール化したくはありませんが、インライン関数の仕様が一定の危険をともなうことに注意する必要があります。そのため、(ただパフォーマンス上のメリットがあるかもしれないという行き当たりばったりの望みではなく)目に見えるメリットがあるときだけ使うと良いでしょう。そんなことはするなということです。文を使ってはいけません。いうエラーが得られるでしょう。戻り値は一時的に保存し、そして戻してやりましょう。ファイル階層とファイルサイズに気をつけてください。すると、インターナルコンパイラエラーを出します。ヘッダファイルのファイルサイズと同様にヘッダファイルの階層も上限に気をつけてください。foobar(char*);};また一つの足手まといです。して宣言されています。virtual)であると言っています。あなたがそうしなければ、警告が返ってきます。これはハードエラーではない一方、この要素はヘッダファイルにありがちであるため、あなたを苛立たせるほどに多くの警告を表示するでしょう。宣言を含むことによってコンパイラの警告を黙らせるのがよりよいです。疑わしくする機能の一つが、コピーコンストラクタの使用です。クラスのコピーコストラクタはオブジェクトの引渡しや戻りでオブジェクトを値渡しすることを意味します(あなたがお望みなら、値渡しがコピーコンストラクタの読み出しを意味します)。これをはっきりさせることは重要なことです。あなたが望まないかもしれなくても、コンパイラが暗黙にコピーコンストラクタへの呼び出しを生成することがあります。関数の引数としてオブジェクトを値渡ししたとき、一時コピーが作られ、そのコピーが渡され、関数から戻るときに破棄されます。したくないこともあるかもしれませんし、いつもあなたのクラスのインスタンスを参照渡ししたいこともあるかもしれません。コンパイラは(デフォルトのコピーコンストラクタ)を一つあなたのために作るでしょう。これの自動的に生成されたコピーコンストラクタは、そう、大抵低品質です。それによって、コンパイラが暗黙で(多分間違った)動作のためにすばらしいコードでないだろうコード断片の呼び出しを生成する場面に出くわします。ええ、「問題ない、私はコピーコンストラクタをいつ呼んでいるかわかっている、そんなことはしない」と思うでしょう。あなたのクラスを他の人が使う場合はどうでしょう?安全な方策としては、二つのうちいずれかです:もし、あなたがあなたのクラスを値渡しをサポートさせようとするなら、クラスによいコピーコンストラクタを書いてください。クラスに値渡しをサポートする理由が見当たらないなら、明示的にそれを禁止すべきです。コンパイラのデフォルトのコピーコンストラクタにそれを任せてはいけません。コピーコンストラクタを宣言して、定義させないことです。いう状況では、同じクラスのオブジェクトの代入のために使われた代入演算子と同じようにしてください。x);};このようにしたとき、コピーコンストラクタを暗黙で呼ぶコードがコンパイルもリンクもされないことを確信できるでしょう。このように、知らないうちには何も起きません。ユーザのコードがコンパイルできないとき、参照渡しをしたかったところで(おっと!)値渡しされていることに気づくでしょう。いったコンパイラ上ではオーバーロードしたメソッドと同じ型仕様を持っていることが見られるでしょう。10L)で記述することに気をつけてください。なければ、特に上記の2つの関数のような複数の関数の呼び出しの解決を潜在的にともなう曖昧関数呼び出しを行うことになります。すべてのコンパイラではないですが、曖昧な関数呼び出しに警告を出すものがあります。)いくつかのプラットフォームでは、ときおりクロスプラットフォームなコードの中の定義と衝突するようなブールのような型宣言をネイティブに持っています。