【发布时间】:2018-02-28 20:06:08
【问题描述】:
对于上下文,我是 C++ 的新手,我用 Java 编程。因此,我对 C++ 语法非常不满意,并且需要简化答案。
我似乎无法理解为什么会收到此错误。我检查了多个答案,但它们都是原始变量。我正在使用对象,我猜这会导致一些错误,或者我只是瞎了。
这是我的课,重点是public下的3个静态变量
class SuperMarket
{
private:
int count;
int totalService;
int totalWait;
public:
static CustomerQ * regularLine; // this
static CustomerQ * expressLine; // this
static EventQ * eventQueue; // this
// Constructors
SuperMarket();
// Destructor
~SuperMarket();
// Accessors
void start(int choice, string file);
static void loop();
// Mutators
};
我在构造函数中初始化静态成员
SuperMarket::SuperMarket() // Constructor
{
count = 0;
totalService = 0;
totalWait = 0;
regularLine = new CustomerQ(); *error*
expressLine = new CustomerQ(); *error*
SuperMarket::eventQueue = new EventQ(); *error*
}
和我在 SuperMarket::Object 做的其他任何地方一样,我得到了错误。如您所见,我尝试同时使用 SuperMarket:: 和没有,但我的错误并没有消失。当然,在我的 SuperMarket 课程之外,我也会学习 SuperMarket::。
【问题讨论】:
-
看来
CustomerQ和EventQ还没有声明。此外,由于它们对类来说是静态的,所以在实例的构造函数中设置它们是很奇怪的。 -
除非绝对必要(例如链表),否则您需要改掉使用
new的习惯。这是 Java 和 C++ 之间的一个主要区别。顺便说一句,C++ 没有垃圾收集。 -
是的,对于更多上下文,这些是队列和 PriorityQueues(秘密排序的链表)