title: Inheritance and protected attribute
body: <p>I'm writing the following structure :</p>
  
  <pre><code>class F {
  protected:
      F* i;
  public:
      F(){i=NULL;}
      virtual F* clone()const=0;
      virtual double operator()(double x)const=0; 
      virtual F* derivative()const=0;
      virtual double inverse(double y)const=0; 
      virtual ~F(){}
  
  };
  
  class T : public F{
      string n;
  public:
      T(string n_);
      F* clone()const;
      double operator()(double x)const;
      F* derivative()const;
      double inverse(double y)const;
      ~T(){}
  };
  </code></pre>
  
  <p>I'm writing method 'T::derivative' right now. My two first lines are :</p>
  
  <pre><code>F* T::derivative()const
  {
      F* deriv;
      deriv-&gt;i=clone();
  
  }
  
  F* T::clone()const
  {
      return new T(n);
  }
  </code></pre>
  
  <p>but Xcode tells me for the second line in 'T::derivative' that <code>'i' is a protected member of 'F</code>. 
  I can't understand why I can't have access to it when I'm in 'T', which inherits from 'F'. </p>