fork download
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // ClassTemplate.hpp
  3.  
  4. //#pragma once
  5.  
  6. #include <iostream>
  7.  
  8. template <typename T>
  9. class ClassTemplate
  10. {
  11. public:
  12. ClassTemplate()
  13. {
  14. std::cout << "ClassTemplate constructor" << std::endl;
  15. }
  16.  
  17. void Test() const
  18. {
  19. std::cout << "ClassTemplate Test" << std::endl;
  20. }
  21. };
  22.  
  23. ///////////////////////////////////////////////////////////////////////////////
  24. // a.hpp
  25.  
  26. //#pragma once
  27.  
  28. class A
  29. {
  30. public:
  31. A(ClassTemplate<int> const & obj)
  32. {
  33. // use it
  34. obj.Test();
  35. }
  36. };
  37.  
  38. ///////////////////////////////////////////////////////////////////////////////
  39. // a.cpp
  40.  
  41. //#include "ClassTemplate.hpp"
  42. //#include "a.hpp"
  43.  
  44. int main( int argc, char ** argv )
  45. {
  46. ClassTemplate<int> obj; // construct instance
  47.  
  48. A a(obj); // construct A, which uses obj
  49. }
  50.  
  51. ///////////////////////////////////////////////////////////////////////////////[/code]
  52.  
  53.  
Success #stdin #stdout 0s 2684KB
stdin
Standard input is empty
stdout
ClassTemplate constructor
ClassTemplate Test