首页 > 解决方案 > 尝试初始化类中的集合时出错

问题描述

我定义了一个名为 Quote 的类,其中有一个多重集:

class Quote

{
public:
    Quote()=default;
    Quote(const std::string& book, double sales_price) :
        bookNo(book), price(sales_price) {}

    std::string isbn() const { return bookNo; }
private:
    std::string bookNo;
    static bool compare(const std::shared_ptr<Quote> &lhs, const std::shared_ptr<Quote> &rhs)
    {
        return lhs->isbn() < rhs->isbn();
    }
    std::multiset<std::shared_ptr<Quote>, decltype(compare)*>   items(compare);
protected:
    double price = 0.0;
    
};

但是我的 IDE(Visual Studio) 显示函数 Quote::compare 不是类型名称

我通常以这种方式从类中初始化一个集合,并且效果很好。为什么会发生在课堂上?谢谢。

标签: c++setinitialization

解决方案


推荐阅读