定义功能

时间:2015-04-08 16:00:49

标签: c++ class

#include"EAN.h"
 class Order{
 private:
    EAN ean_object;     
    int no_copies;
    int no_delivered;
 public:
    Order();    
    Order(const EAN& ean);
    EAN& getEAN(); 
    int outstanding() const;    
    bool add(std::istream& is); 
    bool add(int n); 
    bool receive(std::istream& is); 
    void display(std::ostream& os) const;
 }; 
std::ostream& operator<<(std::ostream& os, const Order& order);

这是我的头文件。当我将EAN& getEAN()函数定义为Order::EAN& getEAN()时。它显示错误,因为EAN类中没有类型名称Order?如何定义?

2 个答案:

答案 0 :(得分:4)

  

当我将EAN& getEAN()函数定义为Order::EAN& getEAN()

您必须将其定义为:

EAN& Order::getEAN()

换句话说,getEAN()是类Order中的一个函数。说EANOrder类的成员是错误的。

答案 1 :(得分:1)

我认为你的意思是

EAN& Order::getEAN() { /* ... */ }

而不是

Order::EAN& getEAN() { /* ... */ }

即成员函数getEAN本身确实在类Order中声明,而类型EAN未在类Order中定义,尽管它在类Order定义中使用。