2011-10-08 111 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; 
};