Apple Mach-O-Linker错误:架构x86-64中找不到从(行)引用的变量 我正在为一个类项目工作C++程序,我把对象数据从一个文件加载到一个列表中。我已经设置好了它,以便像在成员函数中一样读取数据,然后将该对象推送到列表中,并重复,直到没有更多的数据要加载

Apple Mach-O-Linker错误:架构x86-64中找不到从(行)引用的变量 我正在为一个类项目工作C++程序,我把对象数据从一个文件加载到一个列表中。我已经设置好了它,以便像在成员函数中一样读取数据,然后将该对象推送到列表中,并重复,直到没有更多的数据要加载,c++,class,reference,linker-errors,C++,Class,Reference,Linker Errors,我得到了这个错误: 架构x86_64的未定义符号: Product::ProductProduct const&,引用自: std::_1::列表 ::第2周推出产品成本 ld:未找到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1使用-v查看调用 主要功能: Product temp; list <Product> allProducts; if (!temp.loadInitalData()) { cout << "There is n

我得到了这个错误:

架构x86_64的未定义符号:

Product::ProductProduct const&,引用自:

std::_1::列表 ::第2周推出产品成本

ld:未找到架构x86_64的符号

clang:错误:链接器命令失败,退出代码为1使用-v查看调用

主要功能:

Product temp;
list <Product> allProducts;

if (!temp.loadInitalData())
{
    cout << "There is no Product data available. Try a different option: ";
    cin >> choice;
    repeat = true;
}
else {
     while (temp.loadInitalData())
     {
         allProducts.push_back(temp);   //This is where I'm getting the error
     }
     temp.viewMenu();
     repeat = false;
}
bool Product::loadInitalData()
{
    bool moreData = true;
    fstream prodDatabase;
    prodDatabase.open("ProductDatabase.csv", ios::out|ios::in|ios::binary);
    if (!prodDatabase)
    {
        cout << "File could not be successfully opened\n";
        moreData = false;
    }
    else
    {
        moreData = loadInitialItemData(prodDatabase);
    }
    return moreData;
}
产品的loadInitalData功能:

Product temp;
list <Product> allProducts;

if (!temp.loadInitalData())
{
    cout << "There is no Product data available. Try a different option: ";
    cin >> choice;
    repeat = true;
}
else {
     while (temp.loadInitalData())
     {
         allProducts.push_back(temp);   //This is where I'm getting the error
     }
     temp.viewMenu();
     repeat = false;
}
bool Product::loadInitalData()
{
    bool moreData = true;
    fstream prodDatabase;
    prodDatabase.open("ProductDatabase.csv", ios::out|ios::in|ios::binary);
    if (!prodDatabase)
    {
        cout << "File could not be successfully opened\n";
        moreData = false;
    }
    else
    {
        moreData = loadInitialItemData(prodDatabase);
    }
    return moreData;
}

我在main.cpp文件中链接了Product.h,以及。有什么建议吗?

您缺少类产品的副本构造函数。以下列出了编译器何时提供的规则:

但是,如果复制产品对象是一个非常重要的操作,那么您可能需要编写一个

考虑将您的列表列为产品*,即指向产品的指针列表。这避免了复制,很可能是您真正想要的