#include <iostream>
class cArguments
{
public:
cArguments(int,int,int) {}
int getA(){return 0;}
int getB(){return 0;}
int getX(){return 0;}
};
template <typename T>
class cFunction {
public:
cFunction(){}
cFunction(cArguments* args, int _n);
T getFunc(int num);
private:
T* func;
};
template <typename T>
cFunction<T>::cFunction(cArguments* args, int _n)
{
for(int i = 0; i < _n; i++) {
/*func[i] =*/ new T(args->getA(), args->getB(), args->getX());
}
}
using namespace std;
int main() {
cArguments arg(10,10,10);
cFunction<cArguments> a(&arg, 10);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgY0FyZ3VtZW50cwp7IAogICAgcHVibGljOgogICAgCiAgICBjQXJndW1lbnRzKGludCxpbnQsaW50KSAgICB7fQogICAgaW50IGdldEEoKXtyZXR1cm4gMDt9CiAgICBpbnQgZ2V0Qigpe3JldHVybiAwO30KICAgIGludCBnZXRYKCl7cmV0dXJuIDA7fQogICAgCn07Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KY2xhc3MgY0Z1bmN0aW9uIHsKcHVibGljOgogICAgY0Z1bmN0aW9uKCl7fQogICAgY0Z1bmN0aW9uKGNBcmd1bWVudHMqIGFyZ3MsIGludCBfbik7CiAgICBUIGdldEZ1bmMoaW50IG51bSk7CnByaXZhdGU6CiAgICBUKiBmdW5jOwp9OwoKdGVtcGxhdGUgPHR5cGVuYW1lICBUPgpjRnVuY3Rpb248VD46OmNGdW5jdGlvbihjQXJndW1lbnRzKiBhcmdzLCBpbnQgX24pCnsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBfbjsgaSsrKSB7CiAgICAgICAgLypmdW5jW2ldID0qLyBuZXcgVChhcmdzLT5nZXRBKCksIGFyZ3MtPmdldEIoKSwgYXJncy0+Z2V0WCgpKTsKICAgIH0KfQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJCiAgICBjQXJndW1lbnRzIGFyZygxMCwxMCwxMCk7CiAgICAKICAgIGNGdW5jdGlvbjxjQXJndW1lbnRzPiBhKCZhcmcsIDEwKTsKICAgIAoJcmV0dXJuIDA7Cn0=