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]

Understandin Accessing protected member variables GCC


Hi All,

I am trying to access a protected data member of a
base class, within the constructor of a publicly
derived class and results in "error: undefined first
use" 
The way these files are included are as show below. 
Can anyone please elaborate on this. Also to note is
that if I used the 'this' to dereference it, I can
overcome the error. But still want to understand why
it does so in the below setup.

Thanks for any help!
-sonata

F1.h:
-----
#include "Foo.h"
template<class T>
class ST {
 protected: 
     int sTID;
 public:
     ST();
     ~ST();
     int Sme(...);
};

#include "ST_A.h"
#include "ST_B.h"
#include "ST_C.h"

template<class T>
int ST<T>::Sme(...)
{  ... }
//========== End of F1.h


ST_A.h :
-------
#include <time.h>
#define sPID 3

template<class T>
class S_P: public ST<T> {
  private:
  public:
     S_P() {sTID = sPID;} // <== Undefined for sTID?
this works if i use this->sTID I am trying to
understand why it doesn't otherwise
     ~S_P() {}
     ...     
};
 ....
//End of ST_A.h






 
____________________________________________________________________________________
Looking for earth-friendly autos? 
Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.
http://autos.yahoo.com/green_center/


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