【发布时间】:2018-04-08 13:38:00
【问题描述】:
目前正在做作业,我应该创建一个包含不同类型卡片的向量。所以我创建了一个卡类和 2 个派生类(身份证、银行卡)。每个班级都有其独特的信息(名称等)。我不知道如何在向量中创建身份证和银行卡。另外,有人可以解释多态性以及它在这段代码中是如何使用的吗?我尝试使用 & 但我不确定该符号的确切用途是什么。提前感谢您的帮助。
std::cout << "Card Type: " ;
std::cin >> card_type;
while (card_type)
{
if (card_type == 1)
{
std::cout << "Institution name: ";
getline (std::cin, institute_name);
std::cin.ignore();
std::cout << "Cardholder name: ";
getline (std::cin, card_name);
std::cin.ignore();
std::cout << "Expiration date mmddyyyy (0 if none): ";
std::cin >> expire_date;
std::cout << std::endl <<std::endl;
Card* regular = new Card(institute_name, card_name, expire_date);
cardbook.push_back (regular);
}
else if (card_type == 2)
{
std::cout << "Institution name: ";
getline (std::cin, institute_name);
std::cin.ignore();
std::cout << "Cardholder name: ";
getline (std::cin, card_name);
std::cin.ignore();
std::cout << "Expiration date mmddyyyy (0 if none): ";
std::cin >> expire_date;
std::cout << "ID number: ";
std::cin >> identify_num;
std::cout << "DOB mmddyyyy (0 if not listed)";
std::cin >> birthdate;
std::cout << std::endl << std::endl;
IDCard* identification = new IDCard(institute_name, card_name, expire_date, identify_num, birthdate);
cardbook.push_back (identification);
}
else if (card_type == 3)
{
std::cout << "Institution name: ";
getline (std::cin, institute_name);
std::cin.ignore();
std::cout << "Cardholder name: ";
getline (std::cin, card_name);
std::cin.ignore();
std::cout << "Expiration date mmddyyyy (0 if none): ";
std::cin >> expire_date;
std::cout << "Account number: ";
std::cin >> account_num;
std::cout << "Card Security Code: ";
std::cin >> secure_code;
std::cout << std::endl << std::endl;
BankCard* bank = new BankCard (institute_name, card_name, expire_date, account_num, secure_code);
cardbook.push_back (bank);
}
【问题讨论】:
标签: c++ class pointers vector polymorphism