我编写的 c++ 代码有两个文件,一个是主文件(.C),另一个文件是( .h)。我需要在头文件 (*.h) 中使用 argv[1]。我怎样才能做到这一点?
实际上这个文件被写入通过root运行。
我的 AnalyzeTree.C 文件的一些内容是
int main(int argc, char **argv)
{
AnalyzeTree t;
t.Loop();
return 0;
}
void AnalyzeTree::Loop()
{
TFile *hfile = new TFile(argv[2],"RECREATE");
.
.
.
}
AnalyzeTree.h 文件的一些内容是
AnalyzeTree::AnalyzeTree(TTree *tree) : fChain(0)
{
if (tree == 0) {
TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject(argv[1]);
if (!f || !f->IsOpen()) {
f = new TFile(argv[1]);
}
TDirectory * dir = (TDirectory*)f->Get(TString(argv[1])+":/demo");
dir->GetObject("tree",tree);
}
Init(tree);
}
目前我得到的错误是
In file included from AnalyzeTree.C:2:0:
AnalyzeTree.h:29:35: error: ‘::main’ must return ‘int’
AnalyzeTree.h: In constructor ‘AnalyzeTree::AnalyzeTree(TTree*)’:
AnalyzeTree.h:201:62: error: ‘argv’ was not declared in this scope
AnalyzeTree.C: In member function ‘virtual void AnalyzeTree::Loop()’:
AnalyzeTree.C:42:29: error: ‘argv’ was not declared in this scope