指针的C++帮助,特别是" - >"运算符

sta*_*low 1 c++ pointers

嗨,大家好我有" - >"运算符的问题.这是我的代码:并OfferingPair * weeklySchedule ;Schedule类内部删除,并且在头文件中删除了OfferingPair.

struct     OfferingPair
{
  Offering     * off     ;
  OfferingPair * nextOff ;

}


Schedule::Schedule ()
{
    this->weeklySchedule=new OfferingPair[5];

    for(int i=0;i<5;i++)
    {
        weeklySchedule[i]->off=NULL;
        weeklySchedule[i]->nextOff=NULL;
    }   
}
Run Code Online (Sandbox Code Playgroud)

并且因为:

weeklySchedule[i]->off=NULL;
weeklySchedule[i]->nextOff=NULL; 
Run Code Online (Sandbox Code Playgroud)

我遇到一个错误,上面写着:

base operand of ‘->’ has non-pointer type ‘OfferingPair’
Run Code Online (Sandbox Code Playgroud)

但是每周时间表[i]是一个指针,为什么我不能使用" - >"?.谢谢提前.

Luc*_*ore 14

weeklySchedule[i] 返回对象本身,而不是指针,所以你必须使用 .

weeklySchedule[i].off=NULL;
weeklySchedule[i].nextOff=NULL;
Run Code Online (Sandbox Code Playgroud)

我建议你修改你的代码:

std::vector<OfferingPair> weeklySchedule
Run Code Online (Sandbox Code Playgroud)

虽然.这是RAIIght(c)要做的事情.

  • @ user1757052不,`weeklySchedule [i]`**是一个包含off和nextOff指针的结构... (3认同)