gpt4 book ai didi

C++ 构造函数编码错误

转载 作者:太空狗 更新时间:2023-10-29 23:21:25 25 4
gpt4 key购买 nike

我刚刚在一些遗留代码中偶然发现了这个错误:

class MyAPIHandler
{
private:
int handle;
public:
void MyApiHandler() // default constructor
{
handle = 42;
};
};

它编译得很好,没有警告 - 但行为不是我想要的,因为构造函数名称拼写错误。这本身会产生关于“函数不返回值”的警告,但我想我是在自动驾驶仪上并添加了一个“void”返回类型来“修复”这个问题。

现在,错误修复很容易,但我的问题是:-

我可以使用什么技术来防止此类错误再次发生?

有些语言需要一个明确的“constructor”关键字,这应该会使这个问题变得明显。单元测试,明明应该也抓到了。我还能做什么?

最佳答案

如果您总是在构造函数中使用初始化列表:

MyApiHandler()  // default constructor
: handle(42)
{
}

错误命名的构造函数错误更不可能,而且更好 style无论如何。

编辑:感谢评论者提供的链接

关于C++ 构造函数编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/330497/

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