我有一个自定义类,并且正在尝试为=创建运算符重载函数。不幸的是,我得到的错误没有指向特定的行或错误,我只是得到以下错误。1尝试超载时出现无法解析的外部错误=运算符
解析外部符号 “公共:整数__thiscall序列::大小(无效)常量” 在函数引用“公共(大小@ @@序列QBEHXZ?):无效__thiscall序列::运算=(类序列常量& )”(?? 4sequence @@ QAEXABV0 @@ Z)
它是在文件Sequence2.obj线1.这不是我编辑文件时,我有点不确定的错误是在什么样的功能。
Sequence2.cpp
void sequence::operator=(const sequence & source)
{
if (size() <= source.size()) {
delete[] data;
data = new value_type[source.size()];
current_index = -1;
used = 0;
}
else {
delete[] data;
data = new value_type[source.size() * 2];
current_index = -1;
used = 0;
}
for (int i = 0; i < source.size(); i++)
{
data[i] = source.data[i];
used++;
current_index++;
}
}
大小功能,只需返回序列的大小。在Main.cpp上,我只有以下几点。
sequence test; // A sequence that we’ll perform tests on
sequence test2;
test.insert(33);
test.insert(35);
test.insert(36);
test2 = test;
该错误与'operator ='本身无关。编译器(链接器)告诉你,你忘了定义'size()'函数。 'size()'的定义在哪里? – AnT