fork(1) download
  1. #include <stdio.h>
  2.  
  3. struct modelCatalog {
  4. int m_a;
  5. modelCatalog(): m_a(777) {}
  6. };
  7.  
  8. class G4PhysicsModelCatalog
  9. {
  10. public:
  11. G4PhysicsModelCatalog();
  12. static modelCatalog* catalog;
  13. };
  14.  
  15. G4PhysicsModelCatalog::G4PhysicsModelCatalog()
  16. { if(!catalog) {
  17. static modelCatalog catal;
  18. catalog = &catal;
  19. }
  20. }
  21.  
  22. modelCatalog* G4PhysicsModelCatalog::catalog;
  23. /*
  24. G4int G4PhysicsModelCatalog::Register(const G4String& name)
  25. {
  26.   G4PhysicsModelCatalog();
  27.   ....
  28. }
  29. */
  30. int main()
  31. {
  32. printf("catalog before = %p\n", G4PhysicsModelCatalog::catalog);
  33. G4PhysicsModelCatalog();
  34. printf("catalog after= %p m_a = %d\n", G4PhysicsModelCatalog::catalog, G4PhysicsModelCatalog::catalog->m_a);
  35. return 0;
  36. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
catalog before = (nil)
catalog after= 0x2b47368cb058 m_a = 777