gpt4 book ai didi

c++ - 为 C++ 中的每个方法调用执行特定代码

转载 作者:可可西里 更新时间:2023-11-01 18:15:29 27 4
gpt4 key购买 nike

我有一个要检查的 C++ 类。所以,我希望所有方法在退出之前打印它们的参数和返回值。

后者看起来有些简单。如果我对所有内容执行 return(),一个宏

#define return(a) cout << (a) << endl; return (a)

如果我 padronize 所有返回到括号内(或任何可能被调用的),我会这样做(可能是错误的)。如果我想把它去掉,只需注释掉定义即可。

然而,打印输入似乎更难。有没有一种方法可以做到这一点,使用 C++ 结构或使用 workaroud hack?

最佳答案

我想到了几个选项:

  • 使用调试器。
  • 使用decorator pattern ,正如 Space_C0wb0y 所建议的那样。但是,这可能需要大量手动输入,因为您必须复制装饰类中的所有方法并自己添加日志记录。也许您可以通过运行 doxygen 来自动创建装饰器对象在你的类上,然后解析它的输出...
  • 使用aspect-oriented programming . (您想要做的日志记录是 AOP 的常见应用程序。)Wikipedia lists C++ 的一些 AOP 实现:AspectC++ , XWeaver , 和 FeatureC++ .

关于c++ - 为 C++ 中的每个方法调用执行特定代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2552940/

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