class Item {

private:

    string name; //상품명

    int price, qty; //가격, 수량

public:

    Item(string n, int p, int q):name(n),price(p),qty(q){}

    void setItem(string n, int p, int q)

    {

        name = n;

        price = p;

        qty = q;

    }

    string getName()

    {

        return name;

    }

    int getPrice()

    {

        return price;

    }

    int getQty()

    {

        return qty;

    }

};


class Cart{

private:

    Item **items; //Item 포인터 배열

    int delivery, total; // 배송비, 구매총액

    int cnt, maxcnt; //상품갯수, 최대등록 갯수

public:

    Cart(int count):maxcnt(count)

    {

        delivery = total = cnt = 0;

        items = new Item*[count];

    }

    int addItem(string n, int p, int q) //상품 추가하고 추가한 위치 반환

    {

        if(cnt < maxcnt)

        {

            items[cnt++] = new Item(n,p,q);

            total += p * q;

            delivery = (total >= 50000)? 0 : 3000;

            return cnt - 1;

        }

        else cout << "장바구니가 가득차 더이상 상품을 담을 수 없습니다" << endl;




카트 생성자에있는 items=new item*[count] 는 생성만하고
additem에 있는 items[cnt++]= new item (n,p,q); 는 생성하고 초기화 까지 한거라는데

2개를 다 할 이유가 있는 것임? 글고 왜 2개 폼이 다른것임? 아래껀 생성자라 반환형이 안써져서 그럼?