Как объявить argv [1] в заголовочном файле

Код C ++, который я написал, имеет два файла, один из которых является основным файлом (.В) а другой файл есть (.час). Мне нужно использовать argv [1] в заголовочном файле (* .h). Как я могу это сделать?

На самом деле этот файл написан для запуска через 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

-2

Решение

Во-первых: прочитать книгу на C ++ (возможно, для начинающих). Нажмите на тег [C ++] здесь, чтобы найти хорошие книги.

Второе: вы можете передать argv [1] через параметр. Пусть конструктор AnalyzeTree возьмет дополнительный std :: string const& аргумент.

0

Другие решения


По вопросам рекламы [email protected]