学习数据结构自己定义length() 函数和isEmpty() 函数过程中出现了这种错误:
原代码是这样:
//返回字符串长度
int length()
{
int len = 0;
while (m_Data[len] != '\0')
{
len++;
}
return len;
}
//判断字符串是否为空
bool isEmpty() const
{
return (this->length() == 0);
}
结果在this哪里就出现了图1的错误,然后将length() 函数也设为常函数,就没问题了,应该就是两个函数一个是常函数,一个不是常函数导致的,自己使用常函数不够熟练,偶尔用。
正确代码如下:
//返回字符串长度
int length() const
{
int len = 0;
while (m_Data[len] != '\0')
{
len++;
}
return len;
}
//判断字符串是否为空
bool isEmpty() const
{
return (this->length() == 0);
}
两个函数如果都不是常函数的话也没问题。