Bir temel sınıf sağlamazsa, bir yöntemi doldurma hakkında nasıl giderdiniz? Sağlanmış ise temel sınıf yöntemini tekrar kullanmak istiyorum.Şablon tarafından sağlanan bir temel sınıfın uyarlanması
Örn:
#include <iostream>
struct Base0 { };
struct Base1 { void m() { std::cout<<"Base1\n"; } };
template<typename T>
struct Derived : public T {
//if T doesn't provide m, define it here, otherwise reuse the base class method
void m(){ /*? std::cout<<"Derived\n"; ?*/ }
};
int main(){
Derived<Base0> d0;
d0.m(); //should print "Derived"
Derived<Base1> d1;
d1.m(); //should print "Base1"
}
Peki yapabilir Eğer gerçekten bu şekilde yapmak isterseniz, size çağrı ile ilgili bir sorun var yine de sipariş ver. Türetilmiş ve türetilmiş olduğu sürece türetilen bir fonksiyon 'm()' her zaman temel fonksiyonun üzerine yazacaktır 'm()' –
Kavramları karıştırıyorsunuz: devralma, sanal fonksiyonlar ve şablonlar. Tamamen bir kod kokusu. Şablonlara sahip olmak, kalıtım ve sanal işlevlerden kaçınmak. –