重载简单的=操作符
overloading a simple = operator
我正试图将我的类的一部分重载到string
,我无法使重载工作。或者,我也将有一个long long
过载,但我只是假设它将是相同的,除了long long
而不是string
。
class FileData
{
public:
string extensions_;
unsigned long long containsBytes_;
};
string& operator = (string& s , FileData& fd)
{
s= fd.extensions_;
return s;
}
string extName = fileVector[0];
我一直得到的错误是error:'operator='必须是成员函数。我也试过使用istream,但也不起作用。
有人知道我该怎么做吗?
为了能够赋值给类中的字符串,您需要一个转换操作符:
class FileData
{
public:
// Conversion to string
operator string() const {return extensions_;}
string extensions_;
unsigned long long containsBytes_;
};
只能将赋值操作符重载为类的成员,以便将赋值给该类的对象。
不能重载std::string的操作符=。您可能需要的是强制转换操作符:
class FileData
{
public:
string extensions_;
unsigned long long containsBytes_;
operator string()
{
return extensions_;
}
}
相关文章:
- 在c++中用vector填充一个简单的动态数组
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的简单if-else语句是如何无法访问的代码
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 一种在C++中读取TXT配置文件的简单方法
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 显示错误输出的简单数组排序程序
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 退出简单while循环时出现问题
- 为什么简单的算术减法在"if"条件下不起作用?
- C++-字符串是否包含一个带有简单循环的单词
- 关于 c++ 函数中指针赋值的简单问题
- 从函数返回任意简单类型的数据
- 如何在没有函数的情况下编写此代码并使C++更简单?
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 重载简单的=操作符