在C++中使用和不使用调试信息设计函数的正确方法

fee*_*ree 3 c++ visual-studio-2010

当我在一个类中设计一个函数时,我想平衡我可以从中提取的信息.某些信息可能对调试很有用,但作为函数的输出不是必需的.我给出以下示例:

class A
{
   bool my_func(int arg1, int &output, std::vector<int> &intermediate_vec);
  {
     // do something
  }
}
Run Code Online (Sandbox Code Playgroud)

在函数中my_func,std::vector<int> &intermediate_vec没有必要,因为我感兴趣的唯一信息存储在变量中output.但是,出于调试目的,我也有兴趣获取,intermediate_vec因为由于某种原因在函数内检查此变量是不方便的.因此,我正在考虑在A类中设计两个函数,一个用于调试,另一个用于实际应用.

    class A
    {
       // for debug
       bool my_func(int arg1, int &output, std::vector<int> &intermediate_vec);
      {
         // do something
      }
      // invoked by other programs 
      bool my_func(int arg1, int &output);
      {
         // do something
        std::vector<int> intermediate_vec
        return my_func(arg1, output, intermediate_vec);
      }
    }
Run Code Online (Sandbox Code Playgroud)

我只是想知道有更好的方法来完成这项工作.谢谢.

Seb*_*edl 5

使用日志库并在调试日志级别记录这些中间值,而不是将它们作为输出收集.