0
我有一個函數,但我想操作符號以及數字。也就是說,在某些點上可以採用衍生工具和評估函數。我認爲,也許不正確的做法是,最好的方法是使用兩個成員函數來定義一個用戶定義的類:一個提供衍生物(所有符號C++的東西都是私有的),另一個提供替代和當提供參數和變量值時,吐出函數值。在用戶定義的類中使用符號C++
不過,我有一些麻煩,構建私有類成員位中的象徵位:
class fitFunction {
Symbolic t("t"), A("A"), B("B");
float p1, p2, time;
Symbolic fn= A*(1-exp(-B*t));
public:
fitFunction(vector<float> &, float);
float evaluate() {
return fn[A == p1, B == p2, t == time];
}
};
fitFunction::fitFunction (vector<float> & pars, float tt) {
p1 = pars[0];
p2 = pars[1];
time = tt;
}
我用了相當馬虎「TT」的定義,以避免與象徵性的版本可能發生的衝突,但主要我得到的錯誤是:「字符串常量之前的預期標識符」,指向符號定義「t」的箭頭以及所有其他字符串。很明顯,因爲這些都沒有被正確地宣佈,所有其他的事情都會出現。
也許值得指出符號定義和操作在main()中正常工作。
謝謝!