构造函数问题

[复制链接]
1142|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

粉丝
快速回复 在线客服 返回列表 返回顶部