0

ここにこのクラスがあります (これは .h ファイルです)

    #ifndef STORE_H_
    #define STORE_H_

    #include <iostream>
    #include <set>
    #include "list.h"
    #include "Album.h"
    #include "Customer.h"


class Store {

    public:
static const int currentYear = 2013;
Store();
void addAlbum(int barcode, int price, int year, int numPurchased, string title,                             string artist);
void removeAlbum(int barcode);
void addCustomer(int id, string name);
void createNewOrder(int id, int ordNum);
void addToOrder(int ordNum, int barcode);
void removeFromOrder(int ordNum, int barcode);
void payOrder(int ordNum);
string getRecommendations(int numOfRecommendations) const;
string getInventoryReport() const;
string getCustomersReport() const;
string getCustomerReport(int id) const;
string getRevenueReport() const;
~Store();

bool albumsCompare(Album album1, Album album2);
bool customerCompare(Customer customer1, Customer customer2);
std::set<Album> albums;
std::set<Customer> customers;

};

#endif /* STORE_H_ */

セットの「アルバム」にアクセスしようとしています

std::set<Album> albums;

ここから (.cpp ファイル)

void addAlbum(int barcode, int price, int year, int numPurchased, string title, string artist) {


    if(barcode <= 0){
        throw INVALID_BARCODE();
    }

    if(price <= 0){
        throw INVALID_PRICE{};
    }

    if(year > Store::currentYear){
        throw INVALID_YEAR();
    }

    if(numPurchased < 0){
        throw INVALID_NUM_PURCHASED();
    }

    if(Album::findBarcode(Store::albums, barcode) != Store::albums.end()){
        throw BARCODE_ALREADY_EXISTS();
    }
}

しかし、私はエラーが発生しています:メンバー関数 'std::set::iterator Album::findBarcode(const std::set&, const int&)' を呼び出せません

これを解決するための助けをいただければ幸いです。

ここにfindBarcode関数があります

#include "Album.h"




std::set<Album>::iterator Album::findBarcode (std::set<Album>& set,int& barcode){
 Album data = Album();
for (std::set<Album>::iterator i = set.begin(); i != set.end(); i++){
     Album data = *i;
     if(data.barcode == barcode){
            return i;
     }
}
return set.end();

}
4

2 に答える 2