2011-10-08 100 views
-2

我是C++中的noobie。 我有類DataBase其中包含表(類表),我必須重載運算符以獲得下一個結果: dataBase(3,5)= someTable; - 此代碼必須用表someTable替換數據庫中的表3-5。C++超載運算符

所以,請幫助我請重載方法簽名。

回答

0

DataBase類中重載函數調用操作的簽名是:

reference_type operator()(int first, int last); 

reference_type是一個代理的參考,這是存儲到數據庫的引用,第一個和最後一個索引的輔助型,並重載operator=進行更換。行內的東西:

class proxy_reference 
{ 
public: 
    proxy_reference(DataBase& database, int first, int last) 
     : _database(database) 
     , _first(first), _last(last) 
    {} 

    --something-- operator=(Table const& someTable) 
    { 
     /* replace tables _first to _last from _database with someTable */ 
    } 

private: 
    DataBase& _database; 
    int _first, _last; 
};