Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Template classes vs Private inheritance
- #include <iostream>
- using namespace std;
- template <class T>
- class TestImpl {
- public: // It wont make a difference even if we use a protected access specifier here
- size_t vval_;
- TestImpl(size_t val = 0) : vval_(val) { }
- };
- template <class T>
- class Test : public TestImpl<T> {
- public:
- Test(size_t val) : TestImpl<T>(val) {
- cout << "vval_ : " << vval_ << endl; // Error: vval_ was not declared in this scope
- //! cout << "vval_ : " << TestImpl<T>::vval_ << endl; // this works, obviously
- }
- };
- int main() {
- Test<int> test1(7);
- return 0;
- }
- #include <iostream>
- using namespace std;
- class TestImpl {
- public: // It wont make a difference even if we use a protected access specifier here
- TestImpl(size_t val = 0) : vval_(val) {}
- size_t vval_;
- };
- class Test : public TestImpl {
- public:
- Test(size_t val) : TestImpl(val) {
- cout << "vval_ : " << vval_ << endl;
- }
- };
- int main() {
- Test test1(7);
- return 0;
- }
Add Comment
Please, Sign In to add comment