我之前发布了一个关于如何重载字符串的问题,但是当我使用相同的公式时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 行声明)。
但如果我删除任何提及字符串转换的内容,它仍然不起作用。