Мне нужна помощь с моим кодом, я готовлюсь к предстоящему экзамену.
У меня есть код с 3 классами: Package, Person и Courier (наследуется от Person). Тогда у меня есть массив в основном с пакетами. И теперь я застрял в некоторой точке, где у меня есть «Курьер k1 (p, p + 3);» это означает, что мне нужно назначить этому курьеру пакеты от p до p + 3 по указателям. И моя проблема в том, что я не знаю, как получить доступ ко всем нужным мне пакетам из любого класса. Простой пример кода:
class Package
{
string _address;
float _value;
};
class Person
{
string _name, _lastname;
};
class Courier:public Person
{
vector < Package > tab;
}
int main()
{
Package p[] = {
Package("Dabrowskiego 33", 123.00),
Package("NMP 12", 40.00),
Package("Armii Krakowej 4", 30.00),
Package("Andersa 6", 51.00),
Package("Kukuczki 13", 12.00),
Package("Skrzyneckiego 5", 40.00),
};
Courier k1(p, p+3);
cout << k1.value() << endl;
return 0;
};
Код, приведенный выше, является только примером, код в main неизменяем, потому что он является базой от учителя. Я пытался создать метод в Courier с подсчетом количества пакетов, а затем добавить значения к вектору, как это
for(int i=0;i<amount;i++)
{
tab.push_back(Package(*(p+i)));
}
Я не знаю, хороший ли это способ, даже возможно ли это сделать, но тогда я не знать, как отображать значения с помощью функции value ().
С уважением
Редактировать: //
Спасибо всем за помощь, мне удалось завершить программу, и все, кажется, работает , Но у меня есть одно сомнение.
Courier k2;
cout << "---- 8 ----" << endl;
cout << k2.value() << endl;
{
Courier k3(k1);
cout << "---- 9 ----" << endl;
cout << k3.value() << endl;
k2 = k3;
cout << "---- 10 ----" << endl;
cout << k2.value() << endl;
k1 = k1 + p[4];
k1 = k1 + p[5];
cout << "---- 11 ----" << endl;
cout << k1.value() << endl;
}
cout << "---- 12 ----" << endl;
cout << k2.value() << endl;
Теперь я обеспокоен. Прямо сейчас значения выглядят так:
- 8 - возвращает 0 (в качестве моего конструктора по умолчанию установите значение 0, если значения нет)
- 9 - возвращает 193, поскольку оно суммирует все значения
- 10 - возвращает то же, что и выше, потому что он присваивает его из k3
- 11 - возвращает 245, потому что добавляет 2 значения
- 12 - возвращает 193.
А теперь, должно ли это работать так, или значения 8 и 12 должны быть одинаковыми (равными 0), и должны изменяться только значения в скобках?