C ++: ошибка с массивом определенного пользователем типа

Мои ошибки кажутся производными от этой ошибки:

error C2146: syntax error : missing ';' before identifier 'itemArray'

Отсутствует пропущенная точка с запятой, но я также получаю эту ошибку в той же строке:

error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

Я не понимаю, почему происходит любая из этих ошибок.

Order.h

#ifndef ORDER_H
#define ORDER_H

const int MAX_ITEMS = 20;

class Order{

private:
int items;
Item itemArray[MAX_ITEMS]; //error seems to occur here
int orderNum;
int guestNum;
double total;
bool isOpen = true;

public:
Order();
~Order();

void AddItem();
void DeleteItem();
void ChangeItem();
void CloseOrder();
void DisplayOrderDetails();
void SetGuestNum();
};

#endif ORDER_H

Order.cpp

#include "stdafx.h"#include "Order.h"#include "Item.h"#include <iostream>

using namespace std;...

Item.h

#ifndef ITEM_H
#define ITEM_H

#include "stdafx.h"#include <string>
using namespace std;

class Item
{
private:
double price = 0;
string name = "";
bool active = false;
int itemNum = 0;

public:
Item();
~Item();
void CreateItem();
void ChangeItemName();
void ChangeItemPrice();
void RemoveItem();

bool GetActive();
int GetItemNum();
string GetName();
double GetPrice();
};

#endif ITEM_H

Item.cpp

#include "stdafx.h"#include "Item.h"#include <iostream>
#include <string>Item::Item()
{
static int currentNum = 0;
itemNum = ++currentNum;
}
...

В чем проблема и как ее исправить?
Любая помощь с благодарностью, спасибо.

0

Решение

Это выглядит как Item неизвестно раньше:

Item itemArray[MAX_ITEMS]; //error seems to occur here

это должно работать, если вы добавите: #include "Item.h" до Order определение класса или переключатель:

#include "Order.h"#include "Item.h"

чтобы:

#include "Item.h"#include "Order.h"
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]