Template inheritance
Jonathan Wakely
jwakely.gcc@gmail.com
Thu Jun 28 14:08:00 GMT 2012
On 28 June 2012 11:20, icegood <icegood1980@gmail.com> wrote:
>
> #include <cstddef>
> #include <new>
> #include <iostream>
> #include <cstdlib>
>
> class Base
> {
> public:
> Base(){FBase=123;}
> protected:
> int FBase;
> };
>
> template<typename T>
> class A : public Base
> {
> public:
> A(){}
> T FA;
> };
>
> template<typename T>
> class B : public A<T>
> {
> public:
> B(){}
> T FB;
> virtual void F() {std::cout <<FBase << std::endl;} // fails here
> inline void SetB(int vB) {FB=vB;}
> };
>
> int main()
> {
> B<int> VB;
> //
> VB.F();
> }
>
> - doesn't compile. A<T>::FBase instead of FBase solves isuue. Could it be
This is how C++ works, see
http://gcc.gnu.org/wiki/VerboseDiagnostics#dependent_base
> somehow easier, because have
> ~100 properties in Base class each of them called 100 times in B.
You could write this->FBase instead.
More information about the Gcc-help
mailing list