我正在使用c ++进行编码,我正在尝试学习静态变量 当我编写练习代码时,收到了以下错误消息:
架构x86_64的未定义符号:
" pizza :: firstLetterFavPizza",引自:
pizza :: favPizzaFirstLetterChan(char)in main.o ld:找不到架构x86_64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)
请帮忙!我不知道什么是错的。源代码在这里:
#include <iostream>
class pizza
{
public:
static char firstLetterFavPizza;
char favPizzaFirstLetterChan (char letter = firstLetterFavPizza)
{
pizza::firstLetterFavPizza = letter;
return pizza::firstLetterFavPizza;
}
};
int main()
{
pizza *a = new pizza();
pizza *b = new pizza();
std::cout << a->favPizzaFirstLetterChan('c') << std::endl;
delete a;
std::cout << b->favPizzaFirstLetterChan('b') << std::endl;
delete b;
return 0;
};
答案 0 :(得分:1)
您已声明静态数据成员,但未定义它。在某处(在全局命名空间中)向代码添加定义:
char pizza::firstLetterFavPizza;