指针的 C++ 帮助,尤其是 "->"运算符

标签 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;
    }   
}

并且因为:

weeklySchedule[i]->off=NULL;
weeklySchedule[i]->nextOff=NULL; 

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

base operand of ‘->’ has non-pointer type ‘OfferingPair’

但 weeklySchedule[i] 是一个指针,为什么我不能使用“->”?提前致谢。

最佳答案

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

weeklySchedule[i].off=NULL;
weeklySchedule[i].nextOff=NULL;

我建议您将代码修改为:

std::vector<OfferingPair> weeklySchedule

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

关于指针的 C++ 帮助,尤其是 "->"运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13016702/

相关文章:

c++ - float 学精度,c++ vs fortran

c++ - 为什么返回 vector <vector <int>> 的 Rcpp 函数崩溃了?

c++ - 在 Cython 中包装 C++ 时是否必须递归包含所有 header

将整数转换为另一个字符指针

c - 如何修改已传递给 C 函数的指针?

c - 为什么我无法打印存储在创建的数组中的值?

c++ - 在 Visual Studio 2010 中链接到 FFMPEG 库时出现问题

c++ - 在字符串中添加逗号

c - 指向二维数组的指针

C++ 函数取值,它们应该取引用