还是一个关于类的问题!
最近看到书上有这么一段让我觉得有误的代码,不知道是不是我自己想多了?求解答
class...
{
}
//所有成员数据和成员函数都声明和定义。
......
然后有这么一段代码(是求输入的N个字符串中,哪个字符串最短)
int shortest=0;
for(int i=0;i<5;i++) //比如说输入5个字符串
{
if(saying[i].length() < saying[shortest].length()) //length()函数返回字符串长度,saying[..]为类的对象
shortest=i;
}
书中就写了这么一些,但是我就觉得 shortest 值不一定就是最短字符串所在的数组元素的下标。
因为 saying[shortest].length() 一直在那不变,应该添加一句saying[shortest].length()=saying[i].length()
假如下面是类对象中的字符串长度:
saying[1] =5 < saying[0]=6
saying[2] =7
saying[3] =3
saying[4] =4 这里的会是 i=4 ,而实际最短的那个应该是 i=3
应该写成这样:
int shortest=0;
for(int i=0;i<5;i++)
{
if(saying[i].length() < saying[shortest].length())
saying[shortest].length()=saying[i].length() <---------添加这一句
shortest=i;
}
这样才能真正的求的,输入中最短的那个字符串