21

たとえば、これは次のいずれかですか

  • 悪い習慣
  • 読めない
  • 非効率的 (thisポインターの呼び出し)
  • これを行うのが悪い他の理由

.

class Person {

    public:
        string name;
        Person(string name) {
            this->name = name;
        }

};

PS

どうですかPerson(string name) : name(name) { }

4

2 に答える 2

3

私が考えることができる唯一の問題(実際の問題ではない) はmember variablelocal variableまたはで区別できないことですfunction parameter。それは単なるコーディング スタイルであり、効率とは関係ありませんが、 について話すときUnreadable、それは私にとってイエスです。

私にとっては、通常、末尾にアンダースコアを付けてクラスメンバー変数に名前を付けます。これにより、コードが読みやすくなり、メンテナンスが容易になります。

class Person {    
    public:
        string name_;                // member variable with traling `_`
        string m_surname;            // some microsoft style declares member start with `m_`
        Person(const string& name)   // pass parameter by reference. 
        : name_(name)                // you know you are constructing member name_ with name variable
        {
        }

};
于 2013-08-04T12:08:26.560 に答える