对课堂上的会员访问火车感到困惑?
Posted
技术标签:
【中文标题】对课堂上的会员访问火车感到困惑?【英文标题】:Confused About Member Access Train in Class? 【发布时间】:2013-06-03 21:30:37 【问题描述】:我有以下课程:
#include <string>
#include <cstdlib>
using namespace std;
class Locker
public:
int lockerId;
string renterName;
double monthlyRent;
// The variable is true when the locker is a vip locker
//if the locker is a regular locker then this variable is set to false
bool isVip;
bool isRentOverdue;
Locker();
Locker(int id, string name, double rent, bool vip=0, bool overdue=0);
bool operator==(Locker const &other);
;
编辑:储物柜节点类
class LockerNode
public:
Locker objLocker;
LockerNode *next;
LockerNode()
next=0;
;
LockerNode(Locker e, LockerNode *ptr=0)
objLocker=e;
next=ptr;
;
和实施:
#include <sstream>
#include "Locker.h"
#include <iostream>
using namespace std;
Locker::Locker(int id, string name, double rent, bool vip, bool overdue)
lockerId=id; renterName=name; monthlyRent=rent; isVip=vip; isRentOverdue=overdue;
bool Locker::operator==(Locker const &other)
if(lockerId==other.lockerId && renterName==other.renterName && monthlyRent==other.monthlyRent && isVip==other.isVip && isRentOverdue==other.isRentOverdue)
return true;
else return false;
我在函数中有以下代码,试图跟踪链表中对象的数量,并根据它们的数量和属性对它们执行一些操作。我传入e
,这是一个新创建的对象。如果一个对象的属性 vip = true,我需要将它放在其他非 vip 对象的前面,除非已经有一个 vip 对象,在这种情况下它就在它后面。因此,以下代码:
int count = 0;
LockerNode *p = head;
for(;p!=0;count++, p=p->next)
if(count == 1)
if (e.isVip)
if(p->isVip) // !!!!!!!!!Issue here!!!!!!!!!!
我检查了参数fine以确定它是否是vip。但是,我不确定如何检查我在列表中的当前元素是否相同。我在有问题的线路上的上述努力没有奏效。我对语法有点困惑。谁能帮帮我?
谢谢!
【问题讨论】:
【参考方案1】:你的储物柜节点类在哪里?可能有问题...
好的,试试替换这个:
if(p->isVip) // !!!!!!!!!Issue here!!!!!!!!!!
与:
if (p->objLocker.isVip) //true/false for this node
p 是一个访问他的成员的指针 -> 但是 objlocker 不是访问他的成员的指针,而是带有“。”
【讨论】:
道歉,忽略包含它。马上查看原帖。 啊,谢谢你的澄清。不过,我想我仍然需要 e.isVip。基本上,e.isVip 检查 CURRENT 储物柜对象是否为 VIP(即我试图为其寻找位置的那个)。 p 是一个指针,用于在列表中搜索已就位的储物柜。 是的,我现在明白了,我删除了一些我不应该重要的东西,因为你明白了,你现在可以自己解决问题以上是关于对课堂上的会员访问火车感到困惑?的主要内容,如果未能解决你的问题,请参考以下文章
WooCommerce 会员资格检查用户(具有当前会员计划)是不是能够访问内容