string::size_type _cursor ;这个申明怎么理解

godidea 2005-10-08 11:14:41

string::size_type _cursor;

我们知道 string 是一个类 ;那 string::size_type 是类里的类?也可以作来申明一个类变量?
...全文
183 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
2005-10-08
  • 打赏
  • 举报
回复
楼主看的C++ Primer Screen类???
fiftymetre 2005-10-08
  • 打赏
  • 举报
回复
string::size_type表示类型,由于string的一些操作,比如Length()这些函数,返回的类型是string内部定义好的,就是string::size_type,用typedef定义,实际是是一个size_t类型,也就是unsigned long类型。
qhfu 2005-10-08
  • 打赏
  • 举报
回复
好像是: 
在class basic_string中
An unsigned integer type that can represent the number of elements and indices in a string.

typedef implementation-defined size_type;

godidea 2005-10-08
  • 打赏
  • 举报
回复
也可以作来申明一个类变量?
qhfu 2005-10-08
  • 打赏
  • 举报
回复
size_type 是string 类里面的一个typedef,表示长度。
晨星 2005-10-08
  • 打赏
  • 举报
回复
首先,class的确拥有namespace的某些作用。
但不管怎样,size_type首先肯定是个类型名,是类型就可以用来定义变量。
它只是并非一个内建的类型名,而且也不是一个全局的类型名;它是被typedef定义出来的,而且被定义在string类的内部,所以才不得不那么写。
foochow 2005-10-08
  • 打赏
  • 举报
回复
typedef typename Allocator::size_type size_type
...........
string t="123456";
string::size_type _cursor=t.size();
qhfu 2005-10-08
  • 打赏
  • 举报
回复
类名阿
例如:
class String{
public:
typedef int size_t;
};

就可以直接
String::size_t;
godidea 2005-10-08
  • 打赏
  • 举报
回复
如果是 namespace 的话,那么 namespace 和 class 同名?
cdo 2005-10-08
  • 打赏
  • 举报
回复
应该是一个namespace吧,类没有这样的用法呀.
godidea 2005-10-08
  • 打赏
  • 举报
回复
这个时候 string 是一个类还是一个名称空间?
snowbirdfly 2005-10-08
  • 打赏
  • 举报
回复
恩,上面都说了~~
其实看看<<C++标准模板库>>里面有介绍~~~

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧