title: Difference between "strict private" and "protected" Access Modifiers in Delphi?
body: <p>but I learn programming and after structured programming with Pascal language, I'm beginning to learn about OOP with Delphi.</p>
  
  <p>So, I don't really understand the difference between the <code>strict private</code> instruction and the <code>protected</code> one.. So here is my code, it's about a "bag" creation, it's just the introduction of my Delphi's lesson, teacher show us how we can create objects:</p>
  
  <pre><code>    uses
    SysUtils;
  
  Type
  
    Tbag= class (Tobject)                                                          
      strict private                                                                
        FcontenM : single;
        Fcontent : single;
      protected
        function getisempty : boolean;
        function getisfull: boolean;
      public
        constructor creer (nbliters : single);
        procedure add     (nbliters : single);
        procedure clear   (nbliters : single);
        property contenM : single read FcontenM;
        property content : single read Fcontent;
        property isempty : boolean read getisempty;
        property isfull : boolean read getisfull;
      end;
  
  
  function Tseau.getisempty;
    begin
      result := Fcontent = 0;
    end;
  
  function Tseau.getisfull;
    begin
      result := Fcontent = FcontenM;
    end;
  
  constructor Tseau.creer(nbliters: Single);
    begin
      inherited create;
      FcontenM := nbliters;
    end;
  
  procedure Tbag.add (nbliters: Single);
    begin
      if ((FcontenM - Fcontent) &lt; nbliters) then fcontent := fcontenM
        else Fcontent := (Fcontent + nbliters);
    end;
  
  procedure Tbag.clear (nbliters: Single);
    begin
      if (Fcontent &gt; nbliters) then Fcontent := (Fcontent - nbliters)
        else Fcontent := 0;
    end;
  </code></pre>
  
  <p>So it's just an example of object creation; I understand what is public declaration (interface approachable by the outside) but I don't see what's the difference between private and protected declarations.. Thanks for trying to help me..</p>