gpt4 book ai didi

c++ - 体系结构 x86_64 : c++ 的 undefined symbol

转载 作者:搜寻专家 更新时间:2023-10-31 02:17:22 26 4
gpt4 key购买 nike

我在 xcode 中遇到错误 体系结构 x86_64 的 undefined symbol : “餐厅::餐厅()”,引用自: _main 在 main.o 中ld: 找不到体系结构 x86_64 的符号clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

这是我的代码:

#include <iostream>
using namespace std;


class Restaurant
{
public:
Restaurant();
int getTables();
int getTempStaff();
int getPermStaff();
string getShifts();
string getMenu(string menu);
private:
string Menu;
int Tables;
int TempStaff;
int PermStaff;
string Shifts[3];
};

string Restaurant::getMenu(string menu)
{
Menu = menu;
return menu;
}

int main()
{
Restaurant mimmos;


string Menu;
cout<<"Menu: ";
cin>>Menu;
cout<<mimmos.getMenu(Menu);

return 0;

}

请帮忙。

最佳答案

您声明了以下方法:

Restaurant();
int getTables();
int getTempStaff();
int getPermStaff();
string getShifts();
string getMenu(string menu);

.. 并且您在下面定义了 Restaurant::getMenu。这里的问题是,虽然您已经声明了 Restaurant::Restaurant(构造函数),但您还没有定义它。

但是 Restaurant::getShifts 也是如此,为什么你也没有收到错误消息?

这是因为在创建该类型的对象时会自动调用构造函数,如下所示:

//..
Restaurant mimmos;
//..

.您实际上从未最终尝试调用 Restaurant::getShifts(或与此相关的其他非构造函数方法),因此没有错误。

您可以将构造函数定义为默认构造函数(这允许您的编译器为您创建一个合理的构造函数),正如其他回答者所说,或者您可以定义自己的构造函数,这无论如何都是您想要做的。

关于c++ - 体系结构 x86_64 : c++ 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35837033/

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