int i();与int i2 = int();的区别

xunyingren 2010-08-26 01:33:25

#include <iostream>
#include <vector>
using namespace std;

int main( void )
{
int i();
double d();
cout << i << ":" << d << endl;
int i2 = int();
double d2 = double();
cout << i2 << ":" << d2 << endl;
vector<int> iVec(10);
for (vector<int>::iterator it = iVec.begin(); it != iVec.end(); ++it)
{
cout << *it << endl;
}

return 0;
}

在linux下测试。
为什么i,d为1;i2,d2为0,iVec中的int都为0
...全文
274 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2010-08-26
  • 打赏
  • 举报
回复
这样就没有任何区别了。

int i(0);
int i2 = int(0);

都是调用对象的constructor。
shanno 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 operatingtuzi 的回复:]
C/C++ code


int main( void )
{
int i(); //通常编译器会当成函数声明
double d(); //同上
cout << i << ":" << d << endl;
int i2 = int(); //类似默认构造函数 赋值0
double d2 //同上
//容器调用默认……
[/Quote]
我也认为是这样的。
pengzhixi 2010-08-26
  • 打赏
  • 举报
回复
int i();//函数声明,而非定义一个变量
operatingtuzi 2010-08-26
  • 打赏
  • 举报
回复


int main( void )
{
int i(); //通常编译器会当成函数声明
double d(); //同上
cout << i << ":" << d << endl;
int i2 = int(); //类似默认构造函数 赋值0
double d2 //同上
//容器调用默认值初始化内置类型数据


Kinglin_sky 2010-08-26
  • 打赏
  • 举报
回复
int i();
double d();

这已构成一个对象了, 把int , double当成类看待了
jixingzhong 2010-08-26
  • 打赏
  • 举报
回复
int i();
double d();

这已不是一个变量····
lovestefanie 2010-08-26
  • 打赏
  • 举报
回复
int i();windos下不通过
int i2 = int();ms有些编译器是0,有些未定义
lovestefanie 2010-08-26
  • 打赏
  • 举报
回复
windows好像不能这样初始化吧
wang_wuhui 2010-08-26
  • 打赏
  • 举报
回复
iVec 容器默认int是为0.其他不了解..
lovestefanie 2010-08-26
  • 打赏
  • 举报
回复
不知道怎么初始化的

65,183

社区成员

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

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