gpt4 book ai didi

c++ - 如何防止其他编码人员绕过我的包装函数?

转载 作者:太空宇宙 更新时间:2023-11-04 13:43:58 25 4
gpt4 key购买 nike

我有一个处理日志的 C++ 类 (ClassLog),我在自己的类 (ClassWork) 中实现了此类的一个实例。因为我的 ClassWork 日志中需要时间戳,所以我添加了一个包装函数,在将要写入的字符发送到 ClassLog 之前,将当前时间添加到每一行。

这意味着任何在 ClassWork 中添加新日志输出的人都必须使用我的包装器函数,否则日志将被弄乱(缺少时间戳)。但是,ClassLog 有一个公共(public)成员函数,允许任何人绕过我的包装函数,直接写入日志。我可以做些什么来在 ClassWork 中拥有 ClassLog 的实例,同时阻止 ClassWork 访问 ClassLog 公共(public)成员函数,除非它们是从我的包装函数中访问的?这将使另一个编码员不可能不小心搞砸日志。

最佳答案

我能想到的选项:

  1. 不要将 ClassLog 作为类公开。使其成为 ClassWork 的实现细节。

  2. ClassLog的相关成员函数设为私有(private)。声明 ClassWorkClassLog 的友元。

  3. ClassLog 的成员函数中将时间戳作为必需参数。

  4. 将时间戳作为ClassLog 成员函数中的可选参数。如果未提供,则使用当前时间计算时间戳并将其添加到日志中。

关于c++ - 如何防止其他编码人员绕过我的包装函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26681758/

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