Card* Bank::CreateCard(char *name, char *password, int cardType){ int cardID; Card *newCard; if(cardType == 2) { CreditCard creditCard(CardNum, name, password); cards[CardNum] = creditCard; newCard = &creditCard; newCard->Deposit(20); // 这里会调用 CreditCard 的 Despoit() } else { return NULL; } newCard->Deposit(20); // 这里会调用 Card 的 Despoit() return newCard;}
如上,注释所描述的,为什么底部的 newCard 不会调用子类 CreditCard 的 Despoit(),刚学 C++,一直找不到解决方法,先谢了。。。
解决方案
creditCard超出作用域了!已经被析构了!