Advertisement
VRonin

Private Implementation Template

Jun 19th, 2015
580
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. /////////////////////////////////////////////////////////////////////////
  2. // oneclass.h
  3. struct Oneclass{
  4.     template<class T> double Foo(const T& val) const{
  5.         // Do Something
  6.     }
  7. }
  8. /////////////////////////////////////////////////////////////////////////
  9. // myclass_p.h
  10. #include "oneclass.h"
  11. #include "myclass.h"
  12. struct MyCalassPrivate{
  13.     Oneclass m_member; 
  14. }
  15. /////////////////////////////////////////////////////////////////////////
  16. // myclass.h
  17. class MyCalassPrivate;
  18. class MyClass{
  19.     MyCalassPrivate* d_ptr;
  20. public:
  21.     MyClass();
  22.     virtual ~MyClass();
  23.     template<class T> double getFoo(const T& val) const;   
  24. }
  25. /////////////////////////////////////////////////////////////////////////
  26. // myclass.cpp
  27. #include "oneclass.h"
  28. #include "myclass.h"
  29. #include "myclass_p.h"
  30. MyClass::MyClass()
  31. :d_ptr(new MyCalassPrivate())
  32. {}
  33. MyClass::~MyClass(){
  34.     delete d_ptr;
  35. }
  36. template<class T> double getFoo(const T& val) const{
  37.     return d_ptr->m_member.Foo(val);
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement