c++中string的length属性与length方法

glovej 2012-04-10 04:03:45
偶然发现string类型的对象除了length方法外,还有一个length属性,原来以为和方法的值相同,但不知道为何在我的脚本里它一直显示为1,求教了

#include<iostream>
#include<string>
#include<VECTOR>
#define ALPHA 3.14
using namespace std;
void main()
{
string t="abcdefgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
cout<<t.length<<endl;

}
...全文
1278 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
biqiao678767 2013-10-17
  • 打赏
  • 举报
回复
今天我也受教了
glovej 2012-04-18
  • 打赏
  • 举报
回复
强大,,,
iamnobody 2012-04-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 3 楼 的回复:
你的编译器有问题,把它当作一个成员函数指针了.C++的COUT对成员函数指针输出0或1

std::cout<<&amp;std::string::length;//这才是正确的写法.

很强大,但我发现所有的成员函数输出的都是1,什么时候会输出0?
[/Quote]

class A{};

int A::*pMember = 0;//成员指针.

std::cout<<pMember;//这种情况下是0.你对一个成员函数取地址当然会得到一个非0的有效的指针,所以输出1.
glovej 2012-04-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
你的编译器有问题,把它当作一个成员函数指针了.C++的COUT对成员函数指针输出0或1

std::cout<<&std::string::length;//这才是正确的写法.
[/Quote]
很强大,但我发现所有的成员函数输出的都是1,什么时候会输出0?
知你者我 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
偶然发现string类型的对象除了length方法外,还有一个length属性,原来以为和方法的值相同,但不知道为何在我的脚本里它一直显示为1,求教了

#include<iostream>
#include<string>
#include<VECTOR>
#define ALPHA 3.14
using namespace std;
void main()
{
string ……
[/Quote]
length是一个方法,所以要写成t.length();
iamnobody 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

你的编译器有问题,把它当作一个成员函数指针了.C++的COUT对成员函数指针输出0或1

std::cout<<&std::string::length;//这才是正确的写法.
[/Quote]

应该说成员指针转换成bool 类型再输出的.
iamnobody 2012-04-10
  • 打赏
  • 举报
回复
你的编译器有问题,把它当作一个成员函数指针了.C++的COUT对成员函数指针输出0或1

std::cout<<&std::string::length;//这才是正确的写法.
Coder_Y_Jao 2012-04-10
  • 打赏
  • 举报
回复
lz什么环境啊
hongwenjun 2012-04-10
  • 打赏
  • 举报
回复
R:\vc\11\main.cpp|8|error: no match for 'operator<<' in 'std::cout << t.std::basic_string<_CharT, _Traits, _Alloc>::length [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>, std::basic_string<_CharT, _Traits, _Alloc>::size_type = unsigned int]'|

提示错误,GCC 没法这样用

64,635

社区成员

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

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