gpt4 book ai didi

c++ - 跨类辅助函数的最佳约定

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

假设我有两个类,A 类和 B 类,它们都在 namespace NAMESPACE 中定义。这两个类都使用辅助函数 helper()。由于这两个类都使用此函数,我认为可以在同一命名空间但在两个类之外的 .h 文件中定义 helper() 。但是,该功能对于使用我的代码的任何人都是可见和可用的。我的理解是这违反了约定,相反这个函数应该通过某种机制是私有(private)的,因为我从不希望显式调用这个函数。但是,要将其声明为私有(private),需要我在两个类中都声明它,然后稍后在 .cpp 文件中定义它两次。创建可供两个类使用但用户不可见的函数的最佳方法是什么?

最佳答案

一种常见的方法是将函数放入命名空间内的 detail 命名空间中。这并不意味着其他人不能故意使用它,但它不会污染您的 API 命名空间。

或者,如果您在同一个源文件中实现这两个类,只需将其放在该源文件的匿名命名空间中,根本不要将其放在 header 中。

关于c++ - 跨类辅助函数的最佳约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17659486/

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