这个语句在c++中是啥意思?
Posted
技术标签:
【中文标题】这个语句在c++中是啥意思?【英文标题】:What is the meaning of this statement in c++?这个语句在c++中是什么意思? 【发布时间】:2015-02-10 18:33:32 【问题描述】:声明
vector<int>v(string s);
如果我打印这个:
cout << v << endl;
结果是“1”!!
【问题讨论】:
这看起来像vector<int> v(string s);
的函数原型 如果是这样,那么没有看到它的定义就无法知道为什么你会得到你得到的东西。
调高警告级别。我通过-Wall -Wextra
得到了这个:warning: the address of ‘std::vector<int> v(std::string)’ will always evaluate as ‘true’ [-Waddress]
。
【参考方案1】:
这是一个名为v
的函数的声明,它接受string
类型的参数并返回vector<int>
类型的值。
当您使用cout<<v
打印它时,operator<<
没有重载,它接受一个指向此类型函数的指针,因此它被转换为具有值 true
的 bool
(因为它不是-null),打印为1
。
【讨论】:
hhhhhh 对,我不敢相信我问过这样的问题 :) 谢谢以上是关于这个语句在c++中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章