Sınıflarımın çoğunu iki işlevle serial() ve write(). Benim yapmak istediğim, alt sınıflardan adlandırılan temel sınıfın read/write() işlevine sahip olmaktı, böylece seri hale getirme kodunu birçok kez tekrarlamak zorunda kalmam. ÖrneğinC++ 'da geçersiz kılındıktan sonra orijinal işlevi nasıl çağırılır?
:
class Base
{
public:
base();
virtual read(QDataStream&);
virtual write(QDataStream&);
private:
int a, b, c, d;
}
class Sub : public Base
{
public:
Sub();
read(QDataStream&);
write(QDataStream&);
private:
int e, f, g, h;
}
Yani bu örnekte, i Üssü'nden gelmek için a, b, c, d yazma/okuma kodunu istiyorum. Alt sonra Base :: read (QDataStream &) ve sonra Sub için herhangi bir öznitelikler niteliklerini ekleyin. Bu şekilde, her alt sınıfın serileştirme kodunu tekrarlamak zorunda kalmam (ve muhtemelen bunu yapmayı unutmayın).
Not. "Aşırı yükleme", aynı ada sahip, ancak farklı argüman türlerini kullanan birkaç yönteme sahip olduğunuz zamandır. Örneğin, bir dize sınıfı, stringler söz konusu olduğunda + operatörü vermek için operatör +() işlevini aşırı yükleyebilir. – Caleb
Örnekleri doğru yapmaya çalışmalısınız. Üye fonksiyonları geri dönüş türlerini, türü "Base" olarak adlandırılır, ama bir 'base' kurucusu var gibi görünüyor ... –
Caleb açıklama için teşekkürler. – jecjackal