C++ 所示方法的含义

C++ 所示方法的含义,c++,methods,process,command-line-arguments,C++,Methods,Process,Command Line Arguments,在我分析的一个构造函数中,有以下方法: if (validParOptions.found(optionName)) { parRunControl_.runPar(argc, argv); break; //leave loop } 与 ParRunControl parRunControl_ //- Switch on/off parallel mode. 和 void runPar(int& argc, char**& argv) { RunPar = true;

在我分析的一个构造函数中,有以下方法:

if (validParOptions.found(optionName))
{
parRunControl_.runPar(argc, argv); 
break;  //leave loop
}

ParRunControl parRunControl_ //- Switch on/off parallel mode.

void runPar(int& argc, char**& argv)
{
RunPar = true;  //bool RunPar;
if (!Pstream::init(argc, argv))
{
Info<< "Failed to start parallel run" << endl;
Pstream::exit(1);
}
}
void runPar(int&argc、char**&argv)
{
RunPar=true;//bool RunPar;
if(!Pstream::init(argc,argv))
{

Info我假设它是一个宏,因为。然而,错误信息就在眼前:它不允许你使用该代码。 查看其他源文件:

它们要么有空定义,要么包含
notImplemented
。最大的提示是它们都位于
dummy
目录中

我猜你可能是从错误的标题中抽出来的。看看这个:

它实际上有代码:

bool Foam::UPstream::init(int& argc, char**& argv)
{
    MPI_Init(&argc, &argv);

    int numprocs;
    MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
    MPI_Comm_rank(MPI_COMM_WORLD, &myProcNo_);

    /* SNIP */

    return true;
}

关于这一点,我有几个问题。1.如果我去PStream类的类引用,我只能找到我发布的方法。为什么?库中有错误吗?2.虚拟目录是干什么的?@Streight我能想到的只是用于单元测试的“模型”。至于为什么你只有“虚拟目录”版本,我不知道。如果需要的话考虑从GITHUB下载这个版本。我只是在分析一个源代码,所以我不必下载另一个版本。但是我必须确定哪一个版本是我分析的代码中的正确版本。只显示了我包含的版本,但在我的PC上查找类上游的.C文件时,我得到了三个不同的文件,使用了三种不同的init()方法。如何让我知道在我分析的代码中将使用哪一个?@Streight我不知道。试着查看makefile。
bool Foam::UPstream::init(int& argc, char**& argv)
{
    MPI_Init(&argc, &argv);

    int numprocs;
    MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
    MPI_Comm_rank(MPI_COMM_WORLD, &myProcNo_);

    /* SNIP */

    return true;
}