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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I should agree with you in the case when I should want to refer
ANOTHER i (from another template parameter value). But in this case I
have based class B on THE SAME value of template parameter. I was sure
that this indicates very clear that I want the same 'i' which resides
in A<T> instantiation...:-(

On 5/9/06, Blake Huff <stangmechanic@xxxxxxxxx> wrote:
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@xxxxxxxxx











[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux