This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Please, help with this scope problem (simple?)


I'm pretty bad with this, but here's my guess: What if B had multiple templates, i.e., A, C, D, and E, which each had their own i? Compiler needs to know where to go. Someone else might have a better technical explanation (or maybe I'm wrong altogether!).

Blake


On May 9, 2006, at 6:27 AM, Leon Pollak wrote:


Hello, all.
I shall be very thankful for the help with the following compilation
problem. The code example is:

template <typename T>
class A {
protected:  int i;
};

template <typename T>
class B : public A<T> {
public:  B() {i = 0;}
};

My gcc version 4.0.2 20051125 (Red Hat 4.0.2-8) produces:
error: 'i' was not declared in this scope. Writing:
public: B() {A<T>::i = 0;}
solves the problem, but why do I need to specify this? Isn't it obvious?


Many thanks ahead.

Leon.

Blake Huff stangmechanic@gmail.com

GIF image




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]