打印

构造函数问题

[复制链接]
837|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sinadz|  楼主 | 2013-8-29 19:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
默认构造函数是未提供显式初始化时,用来创建对象的构造函数。
class T
{
  private:
  enum {R=10];
  int p;
  char a[R];
  ...
  public:
  ...
};
像T这个类,假定并没有显式初始化。
编译器会自动提供默认构造函数,默认构造函数并不做任何工作。
默认构造函数并不初始化p和字符串a。
他只是创建一个类对象,就像创建了x,但是并没有给他提供值给他一样。
int x;
也就是说如果像这样声明一个T的对象T tclass;
编译器会创建这个tclass类对象,但是其中的p和char是未知的。
这样理解对不对啊?

相关帖子

沙发
无冕之王| | 2013-8-29 19:35 | 只看该作者
分配了那么一片内存,用来存类对象,但是内存的内容没有做设置,(清空or初始化)。

使用特权

评论回复
板凳
yybj| | 2013-8-29 20:02 | 只看该作者
编译器合成的默认构造函数并不会给你初始化什么值,这是程序员该干的活。不过如果定义个全局对象,对象内的成员会初始为0,这根构造函数无关.

使用特权

评论回复
地板
秋天落叶| | 2013-8-29 20:15 | 只看该作者
如果声明的是静态变量或者是全局变量,p和a的元素都将初始化为0

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝