虚拟重载运算符>>和<

问题描述 投票:2回答:2

我需要一个需要其子类重载<<>>的接口,但由于这些运算符未作为成员函数重载,因此我不太确定如何重载:

std::istream& operator>> (std::istream& in, Student& student) {
    in >> student.name >> student.group;
    for (int& i : student.marks) { in >> i; }
    return in;
} 

也许有一种使其成为成员函数的方法?

c++ class operator-overloading virtual function-definition
2个回答
5
投票
您可以执行以下操作:

4
投票
在这种情况下,通常的方法是在基类中声明一个虚拟成员函数,如
© www.soinside.com 2019 - 2024. All rights reserved.