操作器 [] 作为非静态函数

Operatrator [] as non-static function

本文关键字:静态函数 操作器      更新时间:2023-10-16

代码:

SchedulingItem operator[](Schedule obj,int el){
    return obj.OfVector().at(el);
}

错误:

学术界::调度项 学术界::运算符[](学术界::计划,int(' 必须是非静态成员函数     SchedulingItem operator[](Schedule obj,int el(

问题出在哪里?

问题是,正如消息所说,此函数必须是非静态成员函数。

对于operator[]来说,这只是C++定律.

相反,您将其设置为非会员或"免费"功能。

operator[]必须是Schedule类的非静态成员,例如:

class Schedule
{
private:
    std::vector<SchedulingItem> m_vec;
public:
    SchedulingItem& operator[](int el);
};
SchedulingItem& Schedule::operator[](int el)
{
    return m_vec.at(el);
}