c++prime plus 派生类与基类其间的特殊关系

c++prime plus 派生类与基类之间的特殊关系
base1 &ca=case2;//base1为base2二的基类。
这样定义书上说是可以的"c++要求引用和指证类型与赋予的类型匹配,但对继承来说是例外",下面是我为测试的代码~


#ifndef AS
#define AS
class base1
{
int i;
public:
base1()
{i=10;}
~base1(){};
int geti();
};
class base2:base1
{
int ii;
public:
base2():base1(){ii=10;}
~base2(){};
int getii();
};
class base3:base2
{
public:
int iii;
base3():base2(){iii=10;}
~base3(){};
int getiii();
};
#endif



#include<iostream>
#include"file1.h"
int base1::geti()
{
return i;
}
int base2::getii()
{
return ii;
}
int base3::getiii()
{
return iii;
}






#include<iostream>
#include"file1.h"
using std::cout;
using std::endl;
int main()
{
base2 case2();
base1 &ca=case2;
return 0;
}

可是出现了"error  c2243:'type cast':conversion from 'class base2 *'to 'class base1 &'exist ,but is  inaccessible 错误!用的是用的是vc++6.0,知道不好用,但先凑合着吧!过几天再换~

------解决方案--------------------
用的私有继承?