void overwriteRootFile() { TFile* pRootFile = new TFile("myfile.root", "UPDATE"); if (pRootFile != NULL) { TDirectory* pTestDir = (TDirectory*)pRootFile->Get("TestDir"); if (pTestDir != NULL) { pTestDir->cd(); pTestDir->Delete("testobj;*"); std::string name = "testobj"; MyROOTObject* pNewObj = NULL; int ival = rand() % 100 + 1; double dval = (double)(rand() % 1000 + 1)/1000.0; pNewObj = new MyROOTObject(ival, dval, name); if (pNewObj != NULL) { std::cout << *pNewObj << std::endl; pNewObj->Write(pNewObj->GetName(), TObject::kOverwrite); delete pNewObj; } } if (pRootFile->IsOpen() && !pRootFile->IsZombie()) { pRootFile->Close(); delete pRootFile; } } }