Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<class BaseClass>
- class Templated : public BaseClass
- {
- public:
- Templated(int a);
- virtual int Foo();
- };
- class Base
- {
- protected:
- Base(int a);
- public:
- virtual int Foo() = 0;
- protected:
- int b;
- };
- #include "template_test.h"
- Base::Base(int a)
- : b(a+1)
- {
- }
- template<class BaseClass>
- Templated<BaseClass>::Templated(int a)
- : BaseClass(a)
- {
- }
- template<class BaseClass>
- int Templated<BaseClass>::Foo()
- {
- return this->b;
- }
- #include "template_test.h"
- int main()
- {
- Templated<Base> test(1);
- return test.Foo();
- }
- template<> Templated<Base>::Templated(int a);
- template<> int Templated<Base>::Foo();
- template<class BaseClass>
- class Templated : public BaseClass
- {
- public:
- Templated(int a) : BaseClass(a) {}
- virtual int Foo() { return BaseClass::b; }
- };
- void Nobody_Ever_Calls_This()
- {
- Templated<Base> dummy(1);
- }
- Templated<Widget>
Add Comment
Please, Sign In to add comment