Xcode未定义的架构符号

时间:2014-02-11 14:08:30

标签: xcode

刚刚开始教OOP并且在我的程序中出现了一个奇怪的错误,就像在我的例子中一样。我正在使用XCode并收到stange错误:

  

架构x86_64的未定义符号:“Foo :: Foo()”,引用

using namespace std;

class Foo
{
    public:
        Foo();
        ~Foo();
        Foo(const Foo& f2);
        Foo(int data);
        Foo& operator =(const Foo& f2);
    protected:
        int m_Data;
};

Foo::Foo(int data)
{
    m_Data = data;
    cout << "constr1" << endl;
}

Foo::Foo(const Foo& f2)
{
    m_Data = f2.m_Data;
    cout << "constr2" << endl;
}

Foo::~Foo()
{
    cout << " destructor";
}

Foo& Foo::operator=(const Foo& f2)
{
    m_Data = f2.m_Data;
    cout << "prisvaivanie" << endl;
    return *this;
}

Foo test(Foo arg)
{
    return arg;
}

int main(int argc, const char * argv[])
{
    Foo f1(1);
    Foo f2(f1);
    Foo f3 = f1;
    Foo f4;
    f4 = f1;
    Foo f5 = test(f1);
    return 0;
}

它有什么用?

1 个答案:

答案 0 :(得分:1)

您声明一个不带参数但没有定义参数的构造函数,而Foo f4;需要它。