virtual inheritance query
<pre><code>class Base {  
public:  
  Base(){ }  
  virtual void Bfun1();  
  virtual void Bfun2();  
};  

class Derv : public Base {  
public:  
  Derv(){ }  
  void Dfun1();  
};  
</code></pre>

<p>Is there a difference between above definitions and the below ones ? Are they same ? if not how both are the different functionally ?</p>

<pre><code>class Base { 
public:   
  Base(){ }  
  void Bfun1();  
  void Bfun2();  
};  

class Derv : public virtual Base {  
public:  
  Derv(){ }  
  void Dfun1();  
};  
</code></pre>
