代码:
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
#include <vector>
#include "Skirts.h"
#include "Tops.h"
#include "Bottoms.h"
#include "Cart.h"
using namespace std;
void showMenu()
{
cout << "WELCOME TO THE CLOTHING STORE!\n------------------------------\n\n";
cout << "1. Shop for a top!" << endl;
cout << "2. Shop for a pair of pants or shorts!" << endl;
cout << "3. Shop for a skirt!" << endl;
cout << "4. View your cart!" << endl;
cout << "5. Quit the application!" << endl;
cout << "Enter your option: ";
}
void input(Clothing &cl, Cart &c, int option)
{
Tops t;
Bottoms b;
Skirts s;
int option2;
cl.ask();
cout << "\nDo you want to add this item to your cart?";
cout << "\n1. Yes\n2. No\n";
cout << "Enter your option: ";
cin >> option2;
switch(option2)
{
case 1 :
if(option == 1)
{
cl.print();
c.addTop(t);
}
else if (option == 2)
{
cl.print();
c.addBottom(b);
}
else if (option == 3)
{
cl.print();
c.addSkirt(s);
}
cout << endl << endl;
break;
case 2: cout << "Okay!" << endl;
}
}
int main()
{
Tops t;
Bottoms b;
Skirts s;
Cart c;
int option;
while (true)
{
showMenu();
cin >> option;
switch (option)
{
case 1: input(t, c, 1); break;
case 2: input(b, c, 2); break;
case 3: input(s, c, 3); break;
case 4: cout << c << endl; break;
case 5: return 0; break;
default: cout << endl;
}
cout << endl;
}
return 0;
}
ask函数要求用户输入关于每个对象的东西(Tops,Bottoms,Skirts;派生自类服装)。我正在尝试将此对象保存到该对象的向量中,该对象是类Cart的私有成员。这三个载体是
vector<Tops> tops;
vector<Bottoms> bottoms;
vector<Skirts> skirts;
它们中的每一个都有自己的功能来将对象添加到向量中。但是,当我添加一些东西,然后尝试cout购物车(我重载了&lt;&lt;运营商的服装,购物车,上衣,裙子和下装)时,没有显示向量的更改。它几乎就像是在添加默认对象一样,因为每个变量(字符串)都是空白的。
如果我要求用户在对象中输入变量,然后我将对象添加到其对应的向量,然后cout推车,所有在main函数中,它都有效。但是,它不适用于这种情况,我不知道为什么。
我认为这是因为我正在询问有关衣服&amp; c的问题,然后我将这个新对象Tops t,Bottoms b或Skirt s添加到向量中,这与它无关。这几乎就像我需要将对象&amp; c设置为等于t,b或s。也许通过重载=运算符?我不知道......
请帮忙! :(