俺にC言語を1から教えてくれ
■ このスレッドは過去ログ倉庫に格納されています
0146デフォルトの名無しさん
NGNGこんな感じか?
#include <iostream>
#include <vector>
using namespace std;
typedef void (*function)(void);
typedef vector<function> flist;
class functions {
private:
flist ff;
void clear(void) { ff.clear(); }
void add(function f) { ff.push_back(f); }
void assign(function f) { clear(); add(f); }
public:
functions() { clear(); }
functions(function f) { assign(f); }
functions& operator=(function f) { assign(f); return *this; }
functions& operator+=(function f) { add(f); return *this; }
operator()(void) {
for (flist::iterator pf = ff.begin(); pf != ff.end(); pf++) { (*pf)(); }
}
};
void p1(void) { cout << "おらおら" << endl; }
void p2(void) { cout << "ぷすぷす" << endl; }
int main(int argc, char* argv[])
{
p1(); //<--オラオラが表示されるぞ
p2(); //<--プスプスが表示されるぞ
functions f = p1;
f += p2;//<--足し算したぞ
f(); //<--オラオラプスプスが表示されるぞ
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています