gpt4 book ai didi

c++ - 有什么技巧可以使复制构造函数与类属性保持同步吗?

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

我相信这是一个常见问题,但有些谷歌搜索没有返回匹配项,因此请在这里提问。

所以我有以下类(class):

class A {
public:
A(const A &rhs) { m_a = rhs.m_a; }

private:
int m_a;
};

一切都很酷,直到一段时间后,可能是一年后,我将一个新属性 m_b 添加到 class A,但我忘记更新复制构造函数.

找到不同步的位置需要进行痛苦的调试。

是否有避免此类问题的技巧,最好是在构建时?

是的,我可以编写单元测试来覆盖该复制构造函数,但是当我忘记更新复制构造函数时,很可能我也忘记了该单元测试。

最佳答案

打开所有编译器警告。您应该希望收到有关任何未初始化成员变量的警告。在 GCC 上,这个的特定标志是 -Weffc++。参见 this StackOverflow post了解更多信息。

此外,尽可能在初始化列表而不是构造函数体中分配您的值。

关于c++ - 有什么技巧可以使复制构造函数与类属性保持同步吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46758596/

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