我有一个创建函数Factory(const std :: string name)的任务,该函数将返回指向没有打印名称的参数的函数的指针。另外,我应该只使用本地语言方法(没有lambda函数等)。你能举个例子吗?
答案 0 :(得分:1)
代码中的注释。我故意没有将其直接打印到std :: cout,而是将返回字符串。根据需要对其进行调整。
#include <iostream>
struct bork { // the object to hold the text to return
std::string text; // the text to return
// constructor
bork(const std::string& in) : text(in) {}
// the operator that makes the object behave like a function
std::string operator ()(void) const { return text; }
// a factory method to create a "bork"
static bork make_bork(const std::string& text) {
return bork(text);
}
};
int main() {
auto a = bork::make_bork("howdy");
auto b = bork::make_bork("world");
std::cout << a() << "\n";
std::cout << b() << "\n";
}
答案 1 :(得分:-1)
您不能在函数中创建函数。唯一的方法是知道所有出现的字符串,并对每个可能的字符串都有一个函数,然后选择并返回适当的函数。否则,您可以使用对象:-)