class a //my base abstract class
{
public:
virtual void foo() = 0;
};
class b : public a //my child class with new member object
{
public:
void foo()
{}
int obj;
};
int main()
{
b bee;
a * ptr = &bee;
ptr->obj; //ERROR: class a has no member named "obj"
}
Sorunun yanıtı, "class" işaretçisine sahip olduğum alt sınıfı ("a") işaretçisine sahip olduğumda "obj" üyesine nasıl erişebilirim? ") nesne? Oyuncuların hile yapması gerektiğini biliyorum ama daha iyi çözümler arıyorum.Alt sınıf bir abstact sınıfına işaretçiyi kullanarak alt sınıf üyelerine erişim
Bazı içerikler yardımcı olabilir. Bunu neden yapmak istiyorsun? Yayınlama bir seçenek değilse, türetilmiş sınıfınızda bir sanal işlev geçersiz kılmanız gerekir. Bu, söz konusu üyeye bir referans veya işaretçi döndürür. Bununla birlikte, genellikle kapsülleme kırıyor. Bu, bize temel sınıftaki bir işaretçi aracılığıyla türetilmiş sınıf üyesine erişmek istediğinize geri dönüyor? – Void
@Size muhtemelen haklısınız, tasarımı değiştirmeliyim. – user1873947