Guest User

Untitled

a guest
Aug 19th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. Template classes vs Private inheritance
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. template <class T>
  7. class TestImpl {
  8. public: // It wont make a difference even if we use a protected access specifier here
  9. size_t vval_;
  10. TestImpl(size_t val = 0) : vval_(val) { }
  11. };
  12.  
  13. template <class T>
  14. class Test : public TestImpl<T> {
  15. public:
  16. Test(size_t val) : TestImpl<T>(val) {
  17. cout << "vval_ : " << vval_ << endl; // Error: vval_ was not declared in this scope
  18. //! cout << "vval_ : " << TestImpl<T>::vval_ << endl; // this works, obviously
  19. }
  20. };
  21.  
  22. int main() {
  23. Test<int> test1(7);
  24.  
  25. return 0;
  26. }
  27.  
  28. #include <iostream>
  29.  
  30. using namespace std;
  31.  
  32. class TestImpl {
  33. public: // It wont make a difference even if we use a protected access specifier here
  34. TestImpl(size_t val = 0) : vval_(val) {}
  35. size_t vval_;
  36. };
  37.  
  38. class Test : public TestImpl {
  39. public:
  40. Test(size_t val) : TestImpl(val) {
  41. cout << "vval_ : " << vval_ << endl;
  42. }
  43. };
  44.  
  45. int main() {
  46. Test test1(7);
  47.  
  48. return 0;
  49. }
Add Comment
Please, Sign In to add comment