gpt4 book ai didi

c++ - 避免/警告 C++ 成员的自初始化

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:19 24 4
gpt4 key购买 nike

被咬伤后:

struct Person {

std::string first_name;
std::string last_name;
Person(const std::string &first_name_, const std::string &last_name_) :
first_name(first_name_),
last_name(last_name)
{}
};

初始化器 last_name(last_name) 显然应该是 last_name(last_name_)有什么方法可以让 gcc 警告这样的错误(是否有任何使用自身初始化成员的用例?)

或者在构造函数参数与字段相似的情况下关于更好命名约定的任何建议。

最佳答案

我通过对参数使用与它们初始化的成员相同的名称来避免这个问题。查找规则指定在成员初始化程序中使用时名称指的是参数。

如果构造函数太复杂,则可能会出现细微错误;但如果您只是简单地初始化初始化列表中的成员,那没问题。

否则,GCC 将发出有关使用未初始化值和合理警告设置的警告,例如 -Wall(或者可能是 -Wextra),或者更具体地说是 -未初始化。我想可能还有一个 -Winit-self 或类似的,如果你想更具体的话。

关于c++ - 避免/警告 C++ 成员的自初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18635468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com