Как создать файл root - PullRequest
       44

Как создать файл root

0 голосов
/ 28 апреля 2020

Я новичок в root и хочу создать файл root, но на первом этапе у меня ошибка. Когда я хочу определить TFile, у меня появляется такой массаж ошибок: неполный тип не допускается. Что не так?

TFile* F = new TFile("test.root", NEW);

1 Ответ

2 голосов
/ 28 апреля 2020

Второй аргумент используемого вами конструктора TFile - строка ( ссылка на c). В том, что вы написали, веб-интерфейс компилятора (будь то обычное приложение компилятора, которое вы используете напрямую, или отправленная компиляция из командной строки root, или цепляющаяся как веб-интерфейс jit-компилятора), NEW - просто голая неизвестное слово.

Правильная версия будет

TFile* file = new TFile("test.root", "NEW");

(или мое предложение

TFile* file = TFile::Open("test.root", "NEW");

, потому что Open позволяет другие имена файлов , которые находятся в сети, если вам это когда-либо понадобится, и вы также можете предпочесть std::unique_ptr вместо пустого указателя, чтобы ваш файл автоматически закрывался, когда указатель выходит из области действия

std::unique_ptr<TFile> file{TFile::Open("file.root", "NEW")};

… хотя я не уверен, что последний хорошо работает со всеми шаблонами использования и учебными пособиями в inte rnet that…)

...