title: inheritance errors- cannot instantiate abstract class\ cannot access protected member declared in class
body: <p>I am kind of new with this inheritance concept and I cant figure it out what's wrong.
  I will be happy for some help please.</p>
  
  <p>so I have three classes and one main:</p>
  
  <pre><code>class BaseClassPipeline
  {
   protected:
     BaseClassPipeline::BaseClassPipeline(void){};
     virtual int executeFilter  (SRV *p_Srv) = 0;
     BaseClassPipeline::~BaseClassPipeline(void){};
  };
  
  
  class filter_A:public BaseClassPipeline
  {
  **edit: protected and not public**
   **public:**
     filter_A:::filter_A(void);
     int filter_A::executeFilter (SRV *p_Srv){return 1}
     filter_A:::~filter_A(void);
  };
  
  
  
  class PipelineAttr
  {
  
  protected:
      PipelineAttr::PipelineAttr(FILE *cfgFile, SRV *p_Srv){...};
      BaseClassPipeline** PipelineAttr::createPipeline(FILE *cfgFile){...};
      int PipelineAttr::getNumOfFilters(){...};
      PipelineAttr::~PipelineAttr(void){...};
  };
  
  
  
  class Pipeline:public BaseClassPipeline, public PipelineAttr
  {
  public:
     Pipeline::Pipeline(FILE *cfgFile, SRV *p_Srv) : PipelineAttr(cfgFile, p_Srv){}
      int Pipeline::executePipeline(SRV *p_Srv);
      int Pipeline::countFilters();
     Pipeline::~Pipeline(void);
  };
  </code></pre>
  
  <p>this is the main:</p>
  
  <pre><code>void main()
  {
   ...
   Pipeline pipe(cfgFile, srv); // trying to create instance of pipeline
  }
  </code></pre>
  
  <p>I tried to read some other posts but couldn't figure it out what am I doing wrong.</p>
  
  <p>I get those messages:</p>
  
  <blockquote>
    <p>'Pipeline' : cannot instantiate abstract class</p>
    
    <p>'filter_A::filter_A' : cannot access protected member declared in class 'filter_A'</p>
  </blockquote>
  
  <p>thanks.</p>