İşte kodum -Türetilmiş * ile taban * arasındaki dönüşüm neden özel mirasla neden başarısız olur?
#include<iostream>
using namespace std;
class base
{
public:
void sid()
{
}
};
class derived : private base
{
public:
void sid()
{
}
};
int main()
{
base * ptr;
ptr = new derived; // error: 'base' is an inaccessible base of 'derived'
ptr->sid();
return 0;
}
Bu derleme bir zaman hatası veriyor.
error: 'base' is an inaccessible base of 'derived'
Derleyici sid()
taban sınıfını denemeye çalışacak ve neden bu hatayı alıyorum? Birisi bunu açıklayabilir mi?
"Sanal" yöntemini bildirmediniz. Tam olarak hangi hatayı alıyorsun? – Dirk
Geçerli haliyle, bunun 'sid()' işleviyle ilgisi yoktur. Özel miras kullanıyorsunuz, bundan dolayı türetilmiş * 'den' tabana '' dönüşümü başarısız oluyor. Sorduğunuz şey bu mu, yoksa sid() yöntemi ile ilgili bir şey mi? – Naveen
[Korunan türetilmiş sınıf] 'ın olası bir kopyası (http://stackoverflow.com/questions/433965/protected-derived-class) – kennytm