Как написать пустой класс, который инициализирует три объекта другого класса - PullRequest
1 голос
/ 22 июня 2019

Я должен представлять два класса на основе диаграммы UML. Я просто загрузю диаграмму здесь:

UML Diagram

В качестве спецификации требуется, чтобы программа создала Sale с тремя объектами SaleItem. Моя проблема заключается в понимании того, как можно сделать это в классе без параметров? Я попытался сделать это ниже:

#include <iostream>

using namespace std;


class SaleItem{
public:
    int code = 0;
    double price;
    SaleItem();
    SaleItem(double p){
        code++;
        price = p;

    }
};

class Sale:SaleItem{
public:
    Sale(){
        SaleItem o1 = SaleItem(12.5);
        SaleItem o2 = SaleItem(12.5);
        SaleItem o3 = SaleItem(12.5);
    }
};

int main()
{
    Sale one;
    return 0;
}

Должен быть лучший способ сделать это, так как я даже не могу получить доступ к созданным объектам и использовать их. Я мог бы также неправильно понимать UML-диаграмму, но, к сожалению, она не предоставляет никаких других деталей.

1 Ответ

1 голос
/ 22 июня 2019

Белый параллелограмм в конце отношения на диаграмме UML означает агрегацию.По сути, это означает, что предметы являются участниками продажи.Другими словами, класс продажи не должен быть пустым.

Элементы не могут быть прямыми членами, хотя верхний предел не указан.Я рекомендую хранить предметы в std::vector члене.

...