SRD

no fields

SRD
Jan 6th, 2016
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. //I have a template class that inherits from a base class.
  2.  
  3. template<class Buff2>
  4. class ClassA
  5. {
  6.     protected:
  7.         shared_ptr<Buff2> buf2_container;
  8.  
  9.     public:
  10.         ClassA(shared_ptr<Buff2> buff2) : buf2_container(buff2) { }
  11.  
  12.  
  13.  
  14. template <class Buff, class Buff2>
  15. class ClassB : public ClassA<Buff2>
  16. {
  17.     private:
  18.         shared_ptr<Buff> buf_container;
  19.  
  20.     public:
  21.         ClassB(shared_ptr<Buff> buff, shared_ptr<Buff2> buff2) : ClassA(buff2), buf_container(buff) { }
  22.  
  23.  
  24.  
  25. // And here's the call ...
  26.     b2 = std::make_shared<MyBuffer >();
  27.     // ...
  28.     b1 = std::make_shared<special_buffer <std::pair<no_t, ABData>>>(b2_sz);
  29.     ClassB<special_buffer <std::pair<no_t, ABData>>, MyBuffer > buf(b1, b2);
  30.  
  31.  
  32. /*
  33. error: class 'ClassB<Buff, Buff2>' does not have any field named 'ClassA'
  34.      shared_ptr<Buff2> buff2) : ClassA(buff2),
  35. */
Advertisement
Add Comment
Please, Sign In to add comment