| Üye GİRİŞİ |
İşlev Nesneleri ('Function Objects' veya 'Functors')
Bu program standart çıkışa şunları gönderir:#include <iostream>
#include <algorithm>
using namespace std;
class AyraclaYazdiran
{
ostream & cikis_;
// Ayraclar
char acma_;
char kapama_;
public:
AyraclaYazdiran(ostream & cikis,
char acma,
char kapama)
:
cikis_(cikis),
acma_(acma),
kapama_(kapama)
{}
void operator() (int sayi) const
{
cikis_ << acma_ << sayi << kapama_;
}
};
#define TOPLAM_OGE(x) (sizeof(x) / sizeof(*(x)))
int main()
{
int sayilar[] = { 60, 60, 24, 30, 12 };
/*
Iki degisik islev nesnesi olusturuyoruz.
Bu nesnelerden birisi kendisine operator() ile
gonderilen sayiyi normal parantezler icine
alacak; digeri de kume parantezleri icine...
*/
AyraclaYazdiran parantezleYazdir(cout, '(', ')');
AyraclaYazdiran kumeyleYazdir(cout, '{', '}');
for_each(sayilar,
sayilar + TOPLAM_OGE(sayilar),
parantezleYazdir);
cout << ' ';
for_each(sayilar,
sayilar + TOPLAM_OGE(sayilar),
kumeyleYazdir);
cout << ' ';
}
| acehreli 15.10.2003 | |
| Rating : 10 üzerinden 9.50 |
Yorum ekle