大家好,我对“->”运算符有疑问。这是我的代码:
和 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/