gpt4 book ai didi

c++ - 无法访问类中的公共(public)字段 | C++

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

我这里有这门课(这是一个.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();

}

最佳答案

您正在定义一个非成员函数 addAlbum,与您的同名成员函数无关。您需要将成员函数定义放在 Store 范围内:

void Store::addAlbum(int barcode, int price, int year, int numPurchased, string title, string artist)
{// ^^^^^
....
}

关于c++ - 无法访问类中的公共(public)字段 | C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299775/

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