模糊指针; <sihcollection>含糊不清

时间:2017-07-25 14:14:07

标签: c++ ambiguous

下面我发布了我的代码,用于在HCE中存储命中集合(命中事件集合)。 代码编译成功但在运行程序时,以下错误将被打印到终端七次: &LT; SiHCollection&GT;很暧昧。

我有一种感觉,因为我使用的是命名空间std,虽然我不知道如何修改代码。有什么想法吗?

#include "SiSD.h"
#include "SiHit.h"

#include "G4HCofThisEvent.hh"
#include "G4Step.hh"         
#include "G4ThreeVector.hh"  
#include "G4SDManager.hh"    
#include "G4ios.hh"          
#include "G4UnitsTable.hh"

#include <fstream>
#include <iostream>
#include <sstream> 

using namespace std;

extern ofstream outfile;    

SiSD::SiSD(G4String name)
:G4VSensitiveDetector(name)          
{                                                                                                                           

collectionName.insert("SiHCollection");                                        

}

SiSD::~SiSD(){ }

void SiSD::Initialize(G4HCofThisEvent* HCE)         
{
 SiHCollection = new SiHitsCollection(SensitiveDetectorName, 
 collectionName[0]);


static G4int HCID = -1;

 if(HCID<0)
  {
    HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]);
  }

 HCE->AddHitsCollection(HCID, SiHCollection);
}

G4bool SiSD::ProcessHits(G4Step* aStep, G4TouchableHistory*)    
{
 if(aStep->GetTrack()->GetTrackID() > 0) {
 G4double edep = aStep->GetTotalEnergyDeposit();

 if(edep==0) return false;

 SiHit* aHit = new SiHit();
 aHit->SetEdep(edep);
 SiHCollection->insert(aHit);
  return true;
} else return false;
}

0 个答案:

没有答案