c++ - 在类中使用相同的变量可以在构造函数 C++ 中使用吗?

标签 c++ class constructor this

如果我有课:

class className{
    int i;
public:
    className(int value);
};

根据以下选择从构造函数初始化类变量“i”的最佳实践是什么?

1) 使用带下划线的实际字段名称:

className::className(int i_){
    i = i_;
}

2)使用带有“this”的实际字段名称:

className::className(int i){
    this->i = i;
}

3)完全不一致的事情,例如:

className::className(int value){
    i = value;
}

我看到这个问题在 Java 中被直接解决,但在 C++ 中却没有那么多。我这么问是因为我更喜欢数字 2,因为我个人更喜欢使用较少的变量名称。不过,我想知道这对编译器或链接器等可能意味着什么进一步的考虑。我也想坚持 C++ 规范。

非常感谢!

最佳答案

是的,没关系。

有些人实际上认为这是惯用的。

但是,您的示例都缺少初始值设定项列表的使用:)

class className{
    int i;
public:
    className(int value) : i(value) {};
};

我建议避免重复名称造成混淆。如果你不小心搞砸了,它会让编译器提示。

关于c++ - 在类中使用相同的变量可以在构造函数 C++ 中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33192391/

相关文章:

c++ - 参数包正确展开以初始化 std::strings 的 std::array

c++ - openfoam: flex yyin.rdbuf(std::cin.rdbuf() 错误

c++ - "Email"读者 - 奇怪的迭代器问题

c++ - 在类中初始化静态结构 tm

constructor - Solidity 解析器错误 : Expected identifier but got '='

c++ - 使用 std::variant 作为类成员并应用访问者

spring - 使用 Spring 在 CXF 中配置多个 resouceBean

java - 为什么我不能使用 get 方法从另一个类中访问在另一个类中声明的 TreeMap

java - 在 actionPerformed 中引用这个

javascript - 最后定义的原型(prototype)函数总是在对象初始化时运行