Örnek
Elimizde şöyle bir kod olsun.
Elimizde şöyle bir kod olsun.
template<typename T>
void doProcessing(T& w)
{
if (w.size() > 10 && w != someNastyWidget) {
...
}
T tipinin int dönene size() metodu olabilir. Şöyle yaparızstruct MyT
{
// Some stuff...
int size()
{
return some_calculation_returning_int();
}
// Some more stuff...
};
T tipinin int'e çevirilebilen bir tip dönen size() metodu olabilir. Şöyle yaparızstruct MySizeType
{
// Some stuff...
operator int()
{
return some_calculation_returning_int();
}
// Some more stuff...
};
struct MyT
{
// Some stuff...
MySizeType size()
{
return MySizeType();
}
// Some more stuff...
};
T tipinin int için > operator tanımlayan bir tip dönen size() metodu olabilir. Şöyle yaparızstruct MyOtherSizeType
{
// Some stuff...
operator>(int other)
{
return some_calculation_returning_int() > other;
}
// Some more stuff...
};
struct MyT
{
// Some stuff...
MyOtherSizeType size()
{
return MyOtherSizeType();
}
// Some more stuff...
};
Hiç yorum yok:
Yorum Gönder