C++ PRIMER 上这句话什么意思,该怎么处理

C++ PRIMER 上这句话什么意思
#include <iostream>
using namespace std;

class Base
{
public:
Base()
{
x = 10;
y = 20;
}

virtual void print()
{
cout<<" x = "<<x<<" y = "<<y<<endl;
}

public:
int x;
int y;
};

class Inh : public Base
{
public:
Inh(int xx, int yy, int zz):x(xx), y(yy),z(zz) //错误在这
{
}
void print()
{
Base::print();
cout<<"z = "<<z<<endl;
}
private:
int z;
};

int main()
{
Inh tst(1,2,3);
Base& vs =tst; 
vs.print();
return 0;
}

问题1:初始化列表为什么不能初始化从基类继承而来的成员变量?
问题2:C++ PRIMER上在谈到引用时说“非CONST引用只能引用同类型的对象” 那么我们最常用的多态不也是用指针和引用来实现的吗!并没有加const ,如:Base& vs =tst; 这也不是同类型啊。
C++

------解决方案--------------------
基类的成员要用基类的构造函数初始化。。
------解决方案--------------------
问题1:初始化列表为什么不能初始化从基类继承而来的成员变量?
你的派生类里面在参数初始化列表里调用的是A类的带参构造函数,但是A中没有这种函数啊,派生类能调用的也都是基类里面有的才行。
问题2:C++ PRIMER上在谈到引用时说“非CONST引用只能引用同类型的对象” 那么我们最常用的多态不也是用指针和引用来实现的吗!并没有加const ,如:Base& vs =tst; 这也不是同类型啊。

//测试“非CONST引用只能引用同类型的对象” 
void Testconstref()
{
int i = 1;
//float &f = i;  //编译错误,不能把int类型转换为float&类型
const float &f2 = i;  //但是这个可以了,因为是const 引用了
//以上真机上测试的
}

多态中,派生类可以被当成是基类来使用其属于基类的功能,就好比说学生是人一样,人这个类的属性和行为同样在学生这个类中说的通,行得通。他们是在多态意义上的解释,和“非CONST引用只能引用同类型的对象” 这句话关系不大了
------解决方案--------------------
问题1:初始化列表为什么不能初始化从基类继承而来的成员变量?
基类的成员变量,自然有基类的构造函数去负责初始化。
派生类只要调用基类的构造函数,让基类去完成这个事情。
这就是面向对象的思想。我只告诉你去做这件事,我只要结果。至于怎么做,我不干涉。
------解决方案--------------------
第一个问题:
           基类的构造函数没有参数列表,所以无需在派生类的构造函数上给基类的数据成员赋值。可以在派生类的构造函数内部给基类的数据成员进行赋值。(注意:数据成员一般私有,这样才能体现封装性)
第二个问题:
          派生类对象赋给基类的引用,是多态的体现形式。就像汽车可以说成是车,而如果你把车说成是汽车,那就说不过去了。