构造函数的问题。很不理解!!!!

wjjll123 2010-09-20 03:40:18

#include <iostream>
using namespace std;
class A
{
public:
int i;
A()
{
cout<<1;
}
};
int main(int argc, char* argv[])
{
A a;
A b[2];
A *p[3];
int ii;
cin>>ii;
return 0;
}

为什么输出的是111而不是111111。
单步进去,发现 A *p[3];这个没有过构造函数。很不理解?哪位大虾帮助解释下。
...全文
66 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tsocpp 2010-09-20
  • 打赏
  • 举报
回复
A *p[3];
这个不调用构造函数
minghan0314 2010-09-20
  • 打赏
  • 举报
回复
学习了
btbb1989 2010-09-20
  • 打赏
  • 举报
回复
楼主你真好……哈哈祝你越来越厉害哈 我也是小菜鸟哈哈……一起进步哦耶!
btbb1989 2010-09-20
  • 打赏
  • 举报
回复
楼主结贴把 给我点分啊!!!!!!!!!
wjjll123 2010-09-20
  • 打赏
  • 举报
回复
额。。。写蒙了,没反映过来,刚刚才反映过来,指针要new了才构造的。。。晕
rainmarker 2010-09-20
  • 打赏
  • 举报
回复
A *p[3] 只是一个指向A类别的指针数组。
btbb1989 2010-09-20
  • 打赏
  • 举报
回复
呵呵 你这样只是声明一个一个指针数组 仅仅说明这个指针数组的成员是指向A这个类型的指针 跟A没关系的 怎么会调用构造函数呢?你想想……
genlic 2010-09-20
  • 打赏
  • 举报
回复
你定义指针。。要怎么构造?..
A *p = new A();这样就会了。
  • 打赏
  • 举报
回复
当然,如果new得话,比如 A *a1 = new A;
p[0] = a1;这样就会构造了
  • 打赏
  • 举报
回复
A *p[3];相当于

A *a1;
p[0] = a1;

你觉着这样会构造吗

65,187

社区成员

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

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