这个语句在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&lt;int&gt; v(string s); 的函数原型 如果是这样,那么没有看到它的定义就无法知道为什么你会得到你得到的东西。 调高警告级别。我通过-Wall -Wextra 得到了这个:warning: the address of ‘std::vector&lt;int&gt; v(std::string)’ will always evaluate as ‘true’ [-Waddress] 【参考方案1】:

这是一个名为v 的函数的声明,它接受string 类型的参数并返回vector&lt;int&gt; 类型的值。

当您使用cout&lt;&lt;v 打印它时,operator&lt;&lt; 没有重载,它接受一个指向此类型函数的指针,因此它被转换为具有值 truebool(因为它不是-null),打印为1

【讨论】:

hhhhhh 对,我不敢相信我问过这样的问题 :) 谢谢

以上是关于这个语句在c++中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

“||”是啥意思在 var 语句中是啥意思? [复制]

>> 和 1* 在这个 groovy 语句中是啥意思?

-Wreinterpret-base-class 在 Clang / C++ 中是啥意思?

-> 在 C++ 中是啥意思? [复制]

[=](...)... 在 C++ 中是啥意思? [复制]

[=] 在 C++ 中是啥意思?