2

上司のプレゼンテーション用にコードを書かなければなりません。最終的には、技術担当者とソフトウェア エンジニアがコードを確認します。彼は私にそれを完璧にしてプロフェッショナルに見えるようにしてほしいと思っています (私はプロフェッショナルに見えませんか??)。

この書き方を考えてみましょう:

class ClassName // capital letter
{
private:
    int var1, var2; // small letter no underscore
    double var3;
    std::string var4;

protected: // no protected data
public:
    ClassName() {}
    ClassName(int _var1, int _var2) // definition should be in .h but I will just right it here now
    {
        this->var1 = _var1; // underscored parameters
        this->var2 = _var2;
    }
};

これで問題なくコンパイルできると思いますが、変数の命名、アンダースコア付きのプレフィックス、クラス構造などに関しては、競合するリソースがたくさんあります。私はいくつかの調査を行い、それは私をより混乱させました。結局のところ、それは単なる意見ベースのスタイルまたは個人的な視点であることはわかっていますが、私はこの問題を乗り越えるための SO コミュニティしか持っていません。

  • 推奨事項のレイアウトには、プライベートクラス変数にはアンダースコアサフィックスが必要です」と記載されています
  • アンダースコアに関するルールの高評価の回答は、 「アンダースコアで変数を開始しない」と述べており、受け入れられた回答は「すべてのアンダースコア変数は予約されています」と述べています。
  • 命名規則で受け入れられた回答は、「C++では、アンダースコアは通常、プライベートメンバー変数を示します」と述べています
  • 先頭のアンダースコアの意味で、コンストラクターのパラメーターにアンダースコアが付けられていることがわかります
  • cpp 変数の命名には、「_ SUM: C++ 言語では最初の位置にアンダースコアを使用できます」と記載されています。

別のスタイルは次のとおりです。

class className // small letter
{
private:
    int m_var1, m_var2; // m and underscored
    double m_var3;
    std::string m_var4;

// no protected section at all
public:
    className();
    className(int var1, int var2) // should be just prototype in .h and definition in .cpp but I will write here for now
    {
        this->m_var1 = var1; // no naming style for parameters
        this->m_var2 = var2;
    }
};

最新の質問/回答はおそらく 5 年前のものです (実際には関係ありません)。しかし、この問題に関する率と回答を確認したいと思います。いつ使う_variable?いつ使うvariable_?いつ使うvariable?いつ使うm_variable?データがなくても (「空」のようにprotected)、常にクラス構造に従う必要がありますか? 変数名とクラス名が大文字または小文字になるのは、いつ、なぜですか? プロのプログラマー/開発者は、上記のサンプル コードをどのように記述しますか?

「この問題では両方の言語が同じ標準を持っていると思うので、C# を追加しました」

4

0 に答える 0