请大家帮小弟我看一下这题,解析一下红色的部分,小弟我看了很久都不会

请大家帮我看一下这题,解析一下红色的部分,我看了很久都不会啊
阅读下列说明、图和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 
【说明】 
  某订单管理系统的部分UML类图如图6-1所示。 
 
  图6-1中,Product表示产品,ProductList表示产品目录,Order表示产品订单, 
Orderltem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单 
管理系统的操作接口。 
  请完善类Order的成员函数getOrderedAmount()和类SalesSystem的statistic()方 
法,各个类的属性及部分方法定义参见下面的C++代码。 
【C++代码】 
class Product {                    //产品类 
private:
  string pid;                    //产品识别码 
  string description;                //产品描述 
  double price;                   //产品单价 
public: 
  void setProductPrice(double price);       //设置产品单价 
  string getProductld();             //获取产品识别码 
  string getProductDescription();         //获取产品描述 
  double getProductPrice();            //获取产品单价 
  //其他成员省略 
};

class ProductList{                  //产品列表类 
private:
  vector <Product> products;
public:
  ProductList();
  Product getProductByIndex(int i);        //获得产品列表中的第i件产品 
  void addProduct(Product t);           //在产品列表中加入一件产品 
  Product * getProductByID(string pid);       //获得识别码为pid的产品指针 
  unsigned int getProductAmount();          //获得产品列表中的产品数量 
};

class OrderItem {                   //订单条目类 
private:
  Product *productPtr;                //指向被定购产品的指针 
  int quantity;                    //定购数量 
public:
  OrderItem (Product *, int);
  Product * getProductptr();            //获取指向被定购产品的指针 
  int getQuantity ();                 //获取被定购产品的数量 
};

class Order {                     //订单类 
private: 
  unsigned int orderid;                //订单识别号 
  vector<OrderItem>items;               //订单内容(订单项) 
public:
  Order(unsigned int orderid);              
  //获得识别码为tid的产品在当前订单中被定购的数量 
  int getOrderedAmount(string tid); 
  void additem(Product *productPtr,unsigned int n);//在订单中增加—个订单项
  //其他成员省略 
}; 

class OrderList{                     //订单列表类 
prtvate:
  vector<Order> orders; 
public:
  OrderList(); 
  //Begin()返回指向订单列表第一个元素的迭代器(指针) 
  virtual vector<Order>::iterator OrderList::Begin(); 
  //End()返回指向订单列表最后一个元素之后的迭代器(指向一个不存在的元素) 
  virtual vector<Order>::iterator OrderList::End(); 
  void addOrder(Order t);              //在订单列表中加入一份订单 
  //其他成员省略 
}; 

class SalesSystem{
private:
  ProductList catalog∶                 //产品目录 
  OrderList sales;                   //订单列表 
public: 
  SalesSystem(); 
  void statistic();                  //统计所有产品的定购情况 
  //其他成员省略 
};

//在订单中查找识别码为tid的产品的定购数量,若该产品没有被定购,则返回0
int Order::getOrderedAmount(string tid) 
{ for (int k = 0; k < items.size(); k++){
   if (  (1)items[k].getProductptr () –>getProductId()  == tid) 
     return    (2)items[k],getQuantity()   ;
  }
  return 0; 
}

 

//方法statistic()依次统计产品目录中每个产品的订购总量,并打印输出 
//每个产品的识别码、描述、订购总量和订购金额 
void SalesSystem::statistic() 
{  unsigned int k, t, ordered_qty = 0; 
  vector<Order>::iterator tt;     Product p; 
  cout<<"产品识别码\t描述\t\t定购数量\t金额"<<endl; 

  for(k=0; k<catalog.getProductAtnount(); k++){//遍历产品列表 
   p =  (3)catalog.getProductByIndex(k) ;   //从产品列表取得一件产品信息存入变量p
   ordered_qty = 0;
   //通过迭代器变量it遍历订单列表中的每一份订单 
   for(it = sales.Begin(); (4)it <sales.End() ; it++){
    //根据产品识别码获得产品p在当前订单中被定购的数量 
    t =   (5)it->getOrderedAmount  (p.getProductId());