如何避免在程序中复制大量代码

时间:2015-07-17 10:09:05

标签: c++

我编写了一个包含3个函数的程序。每个函数包含相同的50行(或左右)代码,虽然程序工作似乎不必要地长。我试图找到一种更紧凑的方式来编写它,以便这个大块不必被复制3次。

我使用的是c ++,但我还是比较新的。提前谢谢!

代码采用以下形式:

#include etc
using namespace std

int u=0;
k_y = 1.0E-6;
for (k_x=(1.0E-6); k_x<(pi/a); k_x+= stepsize)

    { (here is a big block of code labeling the elements of a 6x6 matrix)

    }



k_x = pi/a;
for (k_y=(0.0); k_y<(pi/a); k_y+= stepsize)

    { (here is the same block of code)
    }

k_y=pi/a;

for (k_x=(pi/a); k_x>(0.0); k_x-= stepsize)

{
 (the same block of code again)
}

1 个答案:

答案 0 :(得分:1)

您应该将重复的代码分解为自己的函数:

void labelMatrix (MatrixType& matrix /*any other things you need*/)
{
    //code to label elements
}

//now in some function scope
int u=0;
k_y = 1.0E-6;
for (k_x=(1.0E-6); k_x<(pi/a); k_x+= stepsize)
{ 
    labelMatrix(my_matrix);
}

k_x = pi/a;
for (k_y=(0.0); k_y<(pi/a); k_y+= stepsize)
{
    labelMatrix(my_matrix);
}

k_y=pi/a;
for (k_x=(pi/a); k_x>(0.0); k_x-= stepsize)
{
    labelMatrix(my_matrix);
}