当前位置:  开发笔记 > 编程语言 > 正文

C++构造函数编码错误

如何解决《C++构造函数编码错误》经验,为你挑选了1个好方法。

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

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

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

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

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

有些语言需要一个明确的"构造函数"关键字,这应该会使这个问题变得明显.单元测试,显然也应该抓住它.我还可以做些什么?



1> James Hopkin..:

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

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

错误的构造函数错误甚至更不可能,无论如何它都是更好的风格.

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

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有