首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

没有默认构造的类怎么作为其他类的成员

2013-07-01 
没有默认构造的类如何作为其他类的成员示例一下:class A{public:A(int i):_i(i){}int _i}class B{public

没有默认构造的类如何作为其他类的成员
示例一下:
class A
{
  public:
  A(int i):_i(i){}
  int _i;
};

class B
{
  public:
  B(int i):_a(i){}
  A _a;
};

上面的代码木有问题,但是如果我希望B中的_a是一个数组就有问题了,如
class B
{
  public:
  A _aa[128];
  // 如何写B的构造才能合法?
}

哎,生疏了,生疏了,求指教没有默认构造的类怎么作为其他类的成员
[解决办法]
不用默认构造函数的话,你在数组中存放类对象的指针。
A* _aa[128]
[解决办法]
最好还是为A写一个默认构造函数吧。。如果你一定要这么做,就把_aa改为A*数组。。再一个个去new。。
[解决办法]
无论是使用数组形式,还是STL标准库形式, 前置要求就是你的类型要有默认构造函数. 不满足这一要求是无法使用的. 
这些要求是你使用这些功能的基础, 不需要跟标准对着干.
要么,另写一个默认构造函数, 要么给有参的构造函数提供一个默认值. A(int i=0):_i(i){}

热点排行