我不确定这是否是一个愚蠢的问题,如果是,请向我射击!
我经常遇到这种“困境”。我在 C++ 中说过两个重载函数
假设我们有这两个F重载(只是下面的伪代码)
void F(A a, .../*some other parameters*/)
{
//some code part
//loop Starts here
G1(a,.../* some other parameter*/)
//loop ends here
//some code part
}
void F(B b, .../*some other parameters*/)
{
//some code part
//loop Starts here
G2(b,.../* some other parameter*/)
//loop ends here
//some code part
}
其中A和B是不同的类型,G1和G2是做不同事情的不同功能。除了G1和G2行之外,重载的代码部分是相同的,而且它们有时非常长且广泛。现在的问题是.. 我怎样才能更有效地编写我的代码。自然,我不想重复代码(即使这样做很容易,因为它只是一个复制粘贴例程)。一位朋友建议使用宏……但这看起来很脏。这很简单吗,因为如果我现在知道是不是很愚蠢。将不胜感激任何建议/帮助。
编辑:我很抱歉那些想要一个代码示例的人。这个问题真的很抽象,因为我遇到了不同的“相似”情况,我问自己如何才能使代码更短/更清晰。在大多数情况下,代码很长,否则我不会一开始就问这个问题。正如 KilianDS 所指出的,确保函数本身不是很长也很好。但有时这只是不可避免的。在我遇到这种情况的许多情况下,循环甚至是嵌套的(即相互之间有几个循环),并且F的开头是循环的开始,而F的结尾是循环的结束。
何塞