Genellikle kodumun düzgün çalışması için gerekli olan yöntemler için salt sanal işlevler kullanıyorum. Bu yüzden, arayüzler oluşturuyorum ve diğer kullanıcılar türetilmiş sınıflarını uyguluyorum. Türetilmiş sınıflar yalnızca kamuya açık olan bu sanal işlevlere sahipken, kodum onları aramadığı için bazı ek yöntemler özel olarak uygulanmalıdır. Bunun iyi bir OOP uygulaması olarak kabul edilip edilemeyeceğini bilmiyorum (herhangi bir desen var mı?). Neyse, sorum şu: Bir kullanıcı saf sanal işlevi aşırı yükleyebilir mi? temel sınıfSaf sanal işlevin aşırı yüklenmesi
virtual void foo(int,double,double=0)=0;
ama çok sınırlıdır:
yani
class Base
{
public:
Base();
virtual ~Base();
virtual void foo(int,double)=0;
};
class Derived:
public Base
{
private:
// methods
public:
Derived();
virtual ~Derived();
virtual void foo(int, double, double); //this doesn't work
};
bir çözelti olabilir. Ne hakkında düşünüyorsun?
Fonksiyon aşırı yükler ** bir ** farklı API temsil eder. Soyut bir temel sınıf ** tutarlı bir API ** temsil eder. Yani hayır, bu mantıklı değil. –
Örneğiniz 'class Derived: Base' eksik değil mi? – nonsensickle
@nonsensical: doğru, daha yeni düzenledim. teşekkürler – Ale