İlginç bir birden fazla miras sorunu çözmeyi deniyorum.C++ Çoklu Kalıtım - neden çalışmıyorsunuz?
class A
{
public:
virtual int foo() = 0;
virtual int bar() = 0;
};
Sonra, kısmen bu arayüzü tamamlamaktadırlar soyut sınıflar bulunmaktadır:
grandparent birden fazla yöntem ile bir ara-yüz sınıfıdır.
class B : public A
{
public:
int foo() { return 0;}
};
class C : public A
{
public:
int bar() { return 1;}
};
Ben ebeveynlerin hem devralır kullanmak istiyorum ve sınıf yöntemi kullanarak direktifler vasıtasıyla nereden geliyor gerektiğini belirtir: Bir DI çalıştıkları için hataları olsun örneğini deneyin
class D : public B, public C
{
public:
using B::foo;
using C::bar;
};
soyut bir sınıf oluşturur.
int main()
{
D d; //<-- Error cannot instantiate abstract class.
int test = d.foo();
int test2 = d.bar();
return 0;
}
Sorunları ve kısmi uygulamaları nasıl en iyi şekilde kullanabileceğimi anlamama yardımcı olan biri var mı?
Bir elmas deseninde sanal devralmayı kullanmanız gerekir. Ama ben senin sorununun kendiliğinden çözüleceğine inanmıyorum. – David