例如,这是以下任何一种
this
指针的调用)
class Person {
public:
string name;
Person(string name) {
this->name = name;
}
};
P.S。
Person(string name) : name(name) { }
答案 0 :(得分:4)
不,我认为这不是一个坏方法。有时我们甚至会从不同的库中面对相同的方法名称或属性名称。这就是我们创建名称空间和类来解决命名冲突的原因。
只要它不会导致混淆,你应该尽可能简单。即使他们使用相同的名称。但是,您不应混用它们,例如:
class Person {
public:
Person(name) {
this->name = name;
name = clean(this->name);
this->name = prefix + name;
}
private:
string name;
};
保持清洁:
class Person {
public:
Person(name) {
name = clean(name);
name = prefix + name;
this->name = name;
}
private:
string name;
};
答案 1 :(得分:0)
我能想到的唯一问题(不是真正的问题)是您无法将member variable
与local 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
{
}
};