簡體   English   中英

錯誤“沒有成員命名”

[英]an error “has no member named”

我有這段代碼

account.cpp

#include "account.h"
#include <iostream>
#include <string>  

using namespace std;

Account::Account(string firstName, string lastName, int id)
    : strFirstName(firstName), strLastName(lastName), nID(id) {}

void Account::printAccount(){
    cout << strFirstName;
}

account.h

#include <string>

using std::string;

class Account{
private:
    string strLastName;      //Client's last name
    string strFirstName;     //Client's first name
    int nID;                //Client's ID number
    int nLines;             //Number of lines related to account
    double lastBill;
public:
    Account(string firstName, string lastName, int id);
        void printAccount();
};

company.h

#ifndef CELLULAR_COMPANY_H
#define CELLULAR_COMPANY_H

#include <string>
#include <list>
#include <iostream>
#include "account.h"

using namespace std;

class Company {
private:
    list<Account> listOfAccounts;
public:
    void addAccount(string firstName, string lastName, int id) {
        Account newAccount(firstName, lastName, id);
        listOfAccounts.push_back(newAccount);
    }

    void printAccounts(){
        for(list<Account>::iterator i = listOfAccounts.begin(); i != listOfAccounts.end(); ++i){
            i.printAccount;           //here bug
        }
    }
};


#endif // CELLULAR_COMPANY_H

main.cpp中

#include "cellularcompany.h"

int main(){
    Company newCompany;
    newCompany.addAccount("Pavel", "Nedved", 11111);
    newCompany.printAccounts();

    return 0;
}

有人可以解釋一下我的錯誤是什么意思嗎? 提前謝謝(我在company.h中有它看到那里的評論)我有'struct std::_List_iterator<Account>' has no member named 'printAccount'

你在printAccount()之后忘記了括號。 否則,它不是方法調用。 此外,您需要使用->運算符,因為它是一個迭代器。

for(list<Account>::iterator i = listOfAccounts.begin();
    i != listOfAccounts.end(); ++i)
{ 
    i->printAccount();  // Note the ()!
    // This is equivalent to (*i).printAccount(); 
} 

嘗試更改i.printAccount; i->printAccount();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM