体系结构x86的未定义符号

时间:2017-01-12 22:24:59

标签: c++ static

我正在使用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;
};

1 个答案:

答案 0 :(得分:1)

您已声明静态数据成员,但未定义它。在某处(在全局命名空间中)向代码添加定义:

char pizza::firstLetterFavPizza;