protected inheritance error
<pre><code>#include&lt;iostream&gt;

using namespace std;

class base 
{
protected:
    int a;

public:
    base(int i)
    {
        a=i;
    }
};

class derived :protected base
{
public:
    derived(){}

    void show()
    {
        cout&lt;&lt;a;
    }
};

int main()
{
    base obj(2);
    derived obj1;
    obj1.show();
    return 0;
}
</code></pre>

<p>Why is this program giving error as In constructor <code>derived::derived()</code>:</p>

<blockquote>
  <p>error: no matching function for call to <code>base::base()</code> </p>
</blockquote>

<p>Please explain. As i have read in stackoverflow that in case of inheriting as protected, protected members of base class became protected member of derived class. If I am wrong then please share a good link to clear my misconception</p>
