gpt4 book ai didi

c++ - 不同对象的数组

转载 作者:行者123 更新时间:2023-11-28 00:47:03 25 4
gpt4 key购买 nike

好吧,我要做的基本上就是这个。

我有一个 Account 类,然后我有一个从 Account 类继承的 CheckingAccount 和 SavingsAccount 类。

在我的程序中,我有一个名为 accounts 的数组。它将保存两种类型帐户的对象。

Account** accounts;
accounts = new Account*[numAccounts];


accountFile >> tempAccountNum >> tempBalance >> tempTransFee;
CheckingAccount tempAccount(tempBalance, tempAccountNum, tempTransFee);
accounts[i] = tempAccount;

尝试将 tempAccount 分配给帐户数组时出现错误。

不存在从“CheckingAccount”到“Account”的合适转换函数。

如何让帐户数组包含两种对象?

最佳答案

accounts 中的每个元素都是一个Account*。即,“指向 Account 的指针”。您正在尝试直接分配一个 Account。相反,您应该使用该帐户的地址:

accounts[i] = &tempAccount;

请记住,一旦 tempAccount 超出范围,此指针将指向无效对象。

考虑避免使用数组和指针。除非你有充分的理由不这样做,否则我会使用 Account(不是 Account*)的 std::vector:

std::vector<Account> accounts;

accountFile >> tempAccountNum >> tempBalance >> tempTransFee;
accounts.emplace_back(tempBalance, tempAccountNum, tempTransFee);

关于c++ - 不同对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15887849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com