0
刚开始教OOP并在我的程序中出现奇怪的错误,看起来像我的例子。我使用Xcode和接收STANGE错误:Xcode未定义的架构符号
未定义的符号体系结构x86_64的: “富::富()”,引用
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;
}
这里是什么地方?
谢谢,我明白了。是否有任何可能将Foo :: Foo()与默认构造函数关联? – user3297482
您可以摆脱'Foo();'并将'int'构造函数更改为'Foo(int data = 0);',这取决于您实际上希望将'm_Data'设置为默认值。 –
(请注意,这与“Xcode”无关,尽管有你的标签,而且实际上只是一般的C++)。 –