gpt4 book ai didi

c++ - 重载一个简单的 = 运算符

转载 作者:太空宇宙 更新时间:2023-11-04 15:22:23 26 4
gpt4 key购买 nike

我正在尝试将我的类的一部分重载到 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=' must be a member function。我也尝试过使用 istream 但这也没有用。

有人知道我该怎么做吗?

最佳答案

为了能够从你的类中赋值给一个字符串,你需要一个转换运算符:

class FileData
{
public:

// Conversion to string
operator string() const {return extensions_;}

string extensions_;
unsigned long long containsBytes_;
};

您只能将赋值运算符重载为类的成员,以便将赋给该类的对象。

关于c++ - 重载一个简单的 = 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15867531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com