“无操作员”<<&引用;匹配这些操作数-C++; 我对C++很陌生,开始了我的主要大学项目。到目前为止一切都很顺利,但我遇到了这个问题,在网上搜索了几个小时后,我仍然不知所措

“无操作员”<<&引用;匹配这些操作数-C++; 我对C++很陌生,开始了我的主要大学项目。到目前为止一切都很顺利,但我遇到了这个问题,在网上搜索了几个小时后,我仍然不知所措,c++,C++,当我试图循环遍历向量以显示向量中的每个元素时,问题出现在Portfolio::displaycounts()中 它不允许我使用典型的std::cout

当我试图循环遍历向量以显示向量中的每个元素时,问题出现在
Portfolio::displaycounts()

它不允许我使用典型的
std::cout平衡;
账户=账户(名称、余额);
账户。推回(账户);
}
void公文包::displayAccounts(){

std::cout您正在尝试打印
帐户[i]
,它具有
帐户
类型。由于您的对象没有
您正在尝试打印
帐户[i]
具有
帐户
类型。由于对象没有
,标准库不知道如何输出
帐户
类的实例。为了能够编写类似以下内容:

std::cout << some_account;
class Account
{
private:
  std::string name;
  double balance;
public:
  double getBalance();
  Account(std::string name, double balance);

  // add this so the overloaded << operator can access your private members
  friend std::ostream& operator<<(std::ostream& os, const Account& o);
};

// Implementation

std::ostream& operator<<(std::ostream& os, const Account& a)
{
  os << "Name: " << a.name << "  Balance: " << a.balance << "\n";
  return os;
}
而不是:

  for (int i = 0; i < accounts.size(); i++) {
    std::cout << accounts[i] << " ";
for(int i=0;istd::cout标准库不知道应该如何输出
帐户
类的实例。为了能够编写如下内容:

std::cout << some_account;
class Account
{
private:
  std::string name;
  double balance;
public:
  double getBalance();
  Account(std::string name, double balance);

  // add this so the overloaded << operator can access your private members
  friend std::ostream& operator<<(std::ostream& os, const Account& o);
};

// Implementation

std::ostream& operator<<(std::ostream& os, const Account& a)
{
  os << "Name: " << a.name << "  Balance: " << a.balance << "\n";
  return os;
}
而不是:

  for (int i = 0; i < accounts.size(); i++) {
    std::cout << accounts[i] << " ";
for(int i=0;istd::cout您在哪里定义
运算符您在哪里定义
运算符您在哪里使用

  for (auto & account : accounts)
    std::cout << account << " ";
  for (int i = 0; i < accounts.size(); i++) {
    std::cout << accounts[i] << " ";