嘿,我习惯使用C开发,现在想在一个项目中使用C++。有人能给我一个例子,说明如何将这个C样式的代码转换成C++代码吗?我知道它应该可以在C ++编译器中编译,但我想使用C ++技术(例如类,RAII)。
struct Solution {
double x[30];
int itt_found;
double value;
};
Solution *NewSolution() {
Solution *S = (Solution *)malloc(sizeof(Solution));
for (int i=0;<=30;i++) {
S->x[i] = 0;
}
S->itt_found = -1;
return S;
}
void FreeSolution(Solution *S) {
if (S != NULL) free(S);
}
int main() {
Solution *S = NewSolution();
S->value = Evaluate(S->x);// Evaluate是另一个返回double类型的函数
S->itt_found = 0;
FreeSolution(S);
return EXIT_SUCCESS;
}
理想情况下,我想在main函数中做这样的事情,但我不确定如何创建类,我读了很多东西,但正确地将它们结合在一起似乎有点困难。
class Solution {
public:
Solution(int size) {
for (int i = 0; i < size; i++) {
x[i] = 0;
}
itt_found = -1;
}
void Evaluate() {
value = eval(x);
}
double value;
private:
double x[30];
int itt_found;
};
int main() {
Solution S(30);
S.Evaluate();
cout << S.value << endl;
return EXIT_SUCCESS;
}
如果需要更多信息,请问我,谢谢。
编辑:将eval更改为Evaluate,因为我认为eval是保留字,或者至少很令人困惑。在我的实际代码中,我有一个函数指针数组,我使用它来评估X数组并将结果存储在value中。我认为包含它们只会导致不必要的冗余,并且会遮盖我的问题。