我正在設計一個小數學庫。我有一些代表功能類的類,例如多項式。當它們被實例化時,提供所需的參數(a1,a2,a3),以便對象實際上表示一個特定的多項式(a1 * x^2 + a2 * x + a3)。重載函數調用操作符和返回類型
然後我想提供在某個點(x = 3,y =?)評估函數的功能。我讀過this wiki和Thinking in C++,Vol。 1由布魯斯Eckel。他們都說我應該根據操作員的「含義」來決定是否超載。我不是一個有經驗的C++程序員,但就我所知,如果我有一個代表功能的類,並且我使用obj(x)
,我期望的是該函數在該x
處的值爲y
。
這個疑問出現在維度上:我也必須表示矢量函數(http://en.wikipedia.org/wiki/Vector_function),比如a1 * x1 + a2 * x2,並且我將擁有這樣的簽名:operator()(real x1, real x2)
。我的問題是返回類型。如果y1 = a1 * x1 + a2 * x2是一個向量(數學和C++),我應該返回y1值還是參考?我應該還提供const
版本嗎?
PS這是我在Stackoverflow.com上的第一個問題,所以請告訴我,如果問題的某些內容是錯誤的(標題,標籤,問題本身:P),我很樂意改正它。
謝謝你的回答。關於指針,如果我用new創建返回對象並返回指向這個對象的指針,我該如何管理所有權?我讀這個http://stackoverflow.com/questions/94227/smart-pointers-or-who-owns-you-baby和第一個選項(auto_ptr)似乎是合理的。你怎麼看? –