因此,对于类分配,我们已经开始在向量中使用shared_pointers,如下所示:vector<shared_ptr<BankAccount>> @accountsVector其中,我的教授解释说向量包含一个共享指针列表,每个指针都指向一个类BankAccount对象。我的问题是,如何访问BankAccount类中的那些对象?我尝试在带有箭头符号和点符号的for循环中使用索引。如果有类似的问题,请指出正确的方向。

最佳答案

例如,如果BankAccount具有成员getBalance(),则可以执行以下操作:

vector<std::shared_ptr<BankAccount>> accountsVector;
...
accountsVector.push_back(std::make_shared<BankAccount>());
accountsVector.push_back(std::make_shared<BankAccount>());
...
double balance;
balance = accountsVector[0]->getBalance();
balance = accountsVector[1]->getBalance();
// etc...


vector<std::shared_ptr<BankAccount>> accountsVector;
...
accountsVector.push_back(std::make_shared<BankAccount>());
accountsVector.push_back(std::make_shared<BankAccount>());
...
for(auto &account : accountsVector)
{
    double balance = account->getBalance();
    //...
}

关于c++ - vector 中共享指针的使用,以访问类对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58348512/

10-09 13:31