首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++默认构造函数: string与string ()

C++默认构造函数: string与string ()
EN

Stack Overflow用户
提问于 2012-10-16 09:02:17
回答 2查看 376关注 0票数 2

可能重复: Is no parentheses on a constructor with no arguments a language standard?

有谁能解释一下为什么这一行没有给我一个错误:

代码语言:javascript
复制
string params;
params+="d";

但这些台词:

代码语言:javascript
复制
string params();
params+="d";

给我这个错误:错误C2659:'+=‘:函数作为左操作数

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-16 09:03:42

这不是反对:

代码语言:javascript
复制
 string params();

这是函数返回字符串:

代码语言:javascript
复制
 string params();

如下所示:

代码语言:javascript
复制
 string params(void);

因此,错误现在很明显:函数作为左操作数

这个问题有自己的名字:parse

票数 7
EN

Stack Overflow用户

发布于 2012-10-16 09:08:49

在第一种情况下,

代码语言:javascript
复制
string params;

使用默认构造函数创建字符串实例。

在第二种情况下,

代码语言:javascript
复制
string params();

创建指向返回字符串的函数的指针。在这种类型上,显然没有定义operator+=(const &)。

是的,这是语言的一个有点令人困惑的特性,因为当您使用非默认构造函数时,您可以真正地编写。

代码语言:javascript
复制
string params("d");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12911078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档