error: 'Class' has incomplete type

error: 'order' has incomplete type 20 | void addOrder(Order order) { orders_.push_back(order); }

Библиотека подкючена, есть forward declaration. В чем может быть проблема? class Courier

#ifndef FOODDELIVERYSERVICE_COURIER_H
#define FOODDELIVERYSERVICE_COURIER_H

#include <algorithm>
#include <string>
#include <vector>
#include "Order.h"

class Order;
class Courier {
public:
    Courier(int id, std::string name) : id_(id), name_(name) {}

    int getID()  { return id_; }
    std::string getName()  { return name_; }
    void addOrder(Order order) { orders_.push_back(order); }
    void removeOrder(Order order);
    float getAverageDeliveryTime() ;
private:
    int id_;
    std::string name_;
    std::vector<Order> orders_;
};


#endif //FOODDELIVERYSERVICE_COURIER_H

class Order

#ifndef FOODDELIVERYSERVICE_ORDER_H
#define FOODDELIVERYSERVICE_ORDER_H

#include "OrderContent.h"
#include "Courier.h"
#include "Customer.h"


class OrderContent;
class Courier;
class Customer;


class Order {
public:
    Order(int id, Customer customer, OrderContent content, Courier courier);

    int getID() const { return id_; }
    Customer getCustomer()  const { return customer_; }
    OrderContent getContent()  { return content_; }
    Courier getCourier()  { return courier_; }
    void setCourier(Courier courier) { courier_ = courier; }
    float getTotal()  { return content_.getTotal(); }
    void setAssignedTime(time_t time) { assigned_time_ = time; }
    void setDeliveredTime(time_t time) { delivered_time_ = time; }
    float getDeliveryTime();


    double getTotalPrice() ;
private:
    int id_;
    Customer customer_;
    OrderContent content_;
    Courier courier_;
    time_t assigned_time_ = 0;
    time_t delivered_time_ = 0;


};

bool operator==(const Order& lhs, const Order rhs) {
    return lhs.getID() == rhs.getID();
}


#endif //FOODDELIVERYSERVICE_ORDER_H

Ответы (0 шт):