class A{

};
class B:A{

};
class C:A{

};

main{
int size;
cin>>size;
A* a= new A[size];
C c;
a[2]=c;
}

と基底クラスAに派生クラスであるCを代入しようとすると、
アクセスできない基本クラスAへの変換は許されていませんとでてきます。
なにが原因なのでしょう?