Публикувах въпрос по-рано за това как да претоварвам низове, но когато използвам същата формула за unsigned long long
не работи.
Опитах typedef
, но и това не проработи.
typedef unsigned long long i64;
//a new class to hold extention types, and bytes.
class FileData
{
public:
//conversion operators
operator string(){return extensions_;}
operator i64() {return containsBytes_;}
string& operator= (FileData &);
i64& operator= (FileData &);
string extensions_;
i64 containsBytes_;
};
string &FileData::operator=(FileData& fd)
{
return fd.extensions_;
}
i64 &FileData::operator=(FileData& fd)
{
return fd.containsBytes_;
}
има две грешки в този код.
първият е на ред 11:
Грешка: не може да претовари функции, разграничени само от типове връщане
вторият е на ред 22,
Грешка: декларацията е несъвместима с "std::string &FileData::operator=(FileData& fd)" (декларирано на ред 17).
но ако изтрия всяко споменаване на преобразуването на низове, пак не работи.
:%s/^\s*\d*|//
– но съм съгласен. - person Konrad Rudolph   schedule 08.04.2013operator =
, а не операторите за преобразуване. - person didierc   schedule 08.04.2013