gpt4 book ai didi

c++ - 执行不同操作的模块化函数的算法?

转载 作者:太空狗 更新时间:2023-10-29 23:17:03 25 4
gpt4 key购买 nike

有时我会遇到需要多次执行一组代码但稍作修改的情况。考虑以下两种情况:

Case 1:
A
B
C

Case 2:
A
D
C

//A, B, C, D are used to represent a set of code lines

现在 BD 中的代码行之间没有相似之处,所以我目前在我的应用程序中创建了 2 个不同的函数。然而,与 AC 相比,BD 中的代码非常小。我不能只为 AC 创建单独的函数,因为它们使用一些公共(public)变量,将这些变量作为参数传递会非常困惑。

看来我的问题只有一个解决方案。将这两种情况合并到一个函数中,并通过将 bool 作为参数传递给该函数来在其中一种情况之间进行选择。然而,这会导致需要维护的函数规模非常大。所以我正在寻找一些更好的替代方案,因为我相信很多人一定遇到过这种情况。

编辑:为了简单起见,考虑一个字符串变量 myString

A intialises it with some value.

B/D modify it according to some conditions.

C uses myString for some purpose, say write to file.

总而言之,数据流是这样的:

Case 1:
A -> B -> C

Case 2:
A -> D -> C

只是有大量数据流将这些集合中的每一个分离到不同的功能。

最佳答案

我能想到的选项:

  • 创建一个以 A、B、C 和 D 作为函数的类。

    所有公共(public)变量都可以是该类的成员变量。

  • 创建一个简单存储所有公共(public)变量的类。

    这可以通过引用传递给 A、B、C 和 D(因此您只需传递一个变量)。

  • 考虑尝试重构它们,以尽量减少它们使用的公共(public)变量的数量。

    这可以在上述任何一项之外完成,也可以单独完成。

    在不知道你到底在做什么的情况下,我无法真正告诉你这是否可行,但你应该牢记这一点。虽然上述参数类只是一个变量,但它本质上只是一堆变量的包装器 - 我们仍然应该尝试尽量减少它们的数量。

关于c++ - 执行不同操作的模块化函数的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20727663/

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