以前求字符串大小时候一直搞A:size(s)
这是错的
正确应该是B:s.size();
这俩逻辑理解是不同的
A:size是一个函数,可以猜想它的函数体应该是
int size(string s)
{
int size=0;
…
return size;
}
这么理解也没啥问题也许这个函数还重载了不仅可以求字符串的大小,还可以求其他数据类型的size,但这么做肯定是不方便的,因为字符串的大小和其他类型的大小的求法有本质差别,字符串的求法应该是遍历,计数,故不好重载其他类型
sizeof可以求很多类型的数据的占用大小,应该是函数重载
所以B的可能更高
B的逻辑s.size();
字符串在c++中是一种复合数据类型,即它可以通过其他基础数据类型通过有意的结构组织而成,比如char数组,char数组完全可以表示字符串,它恰恰也是这么做的
字符串是一个类size是它的一个内置函数,只用来求字符串故它
class string
{
int size(string s)
{
}
}
版权声明:本文为HELLOWORLDBOOK原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。