2017-04-02 65 views
0

這裏是我的代碼:私人雙變量,永遠不會被更新

我的結果不會改變,總是變爲0

我做兩個向量的點積。我不能使用STL算法,如std::inner_product。所以我需要編寫一個迭代器。該operator=應該做的積累

template <uint32_t DIM> 
double Vector<DIM>::dot(const Vector& rhs) const 
{ 
    return std::transform(begin(),end(),rhs.begin(),accumulator(),multiply()).getresult(); 
} 

class accumulator 
{ 
    public: 
     accumulator& operator++(){ 
      return *this; 
     } 

     accumulator operator++(int){ 
      return *this; 
     } 

     accumulator operator*(){ 
      return *this; 
     }; 

     void operator=(double a){ 
      result=result+a; 
     } 

     double& getresult(){ 
      return result; 
     } 

    private: 
     double result; 
} 

回答

0

你回來在你引用操作價值,創建副本,這意味着具有多重分配的值是每項任務的不同實例,而不是迭代器實例。

相關問題