gpt4 book ai didi

c++ - 将重载的输入运算符与此指针一起使用

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:18:49 26 4
gpt4 key购买 nike

我找不到我的问题的答案,所以在这里。我用重载的 >> 运算符创建了类。在代码的后面,我有一个使用相同代码的方法,所以我想对这个指针使用重载运算符,但似乎并不那么容易。我想知道这里有什么问题以及如何以优雅的形式解决它。

代码:

class Zadanie
{
int rozmiar;
vector<int> dane;
public:

Zadanie(int _rozmiar = 0)
{
rozmiar = _rozmiar;
dane.reserve(rozmiar);
}

int getRozmiar() { return rozmiar; }
void setRozmiar(int _rozmiar) { rozmiar = _rozmiar;}

friend istream & operator >> (istream & StrmWe, Zadanie & zadanie)
{
StrmWe >> zadanie.rozmiar;
for(int i = 0 ; i < zadanie.rozmiar; i++)
{
int tmp;
StrmWe >> tmp;
zadanie.dane.push_back(tmp);
}

return StrmWe;
}

void WczytajDaneZPliku()
{
const char* filepath = "data0.txt";
ifstream plik(filepath);
//plik.open(filepath, ios::in);

if(plik.good())
plik >> this;

plik.close();
}

};

错误:“operator>>”不匹配(操作数类型为“std::ifstream {aka std::basic_ifstream}”和“Zadanie* const”)

我期待有人能为我揭开这个谜团。

最佳答案

由于您的 operator >>() 需要一个 Zadanie,您可以使用 plik >> *this;*this 取消引用指针并为您提供底层对象。

关于c++ - 将重载的输入运算符与此指针一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29523490/

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