【发布时间】:2012-01-14 02:41:02
【问题描述】:
基本思想是我有一个“家庭”类,它们都做同样的事情,但方式略有不同。这个“家族”用于“高性能”循环,因此速度至关重要。此外,具体的家庭由配置文件指定...
问题是这里的 main 函数中有大量的代码重复。有没有更好的方法来构建这个,所以我不必写HP<objx> test 和test.loop(bobloblaw) 三遍? (实际上,这段代码比 2 行多得多……)
class obj1 {
public:
double f(double x) const { return 1.; }
};
class obj2 {
public:
double f(double x) const { return x; }
};
class obj3 {
public:
double f(double x) const { return x*x; }
};
template <class O>
class HP {
private:
O obj;
public:
double loop(const vector<double>& x) {
double s = 0.;
for (auto i : x) s += obj.f(i);
return s;
}
};
int main() {
string config = "bob";
double result = 0;
vector<double> bobloblaw;
/* Read configuration file to determine which object to use. */
if (config == "obj1") {
HP<obj1> test;
result = test.loop(bobloblaw);
} else if (config == "obj2") {
HP<obj2> test;
result = test.loop(bobloblaw);
} else if (config == "obj3") {
HP<obj3> test;
result = test.loop(bobloblaw);
}
return result;
}
【问题讨论】:
-
+1 供被逮捕的发展参考。
标签: c++