C:数组的构造函数/初始化程序?

我熟悉C构造函数&初始化:
class Foo {
   int x;
public:
   Foo(int _x) : x(_x) {}
};

Foo foo1(37);
Foo foo2(104);

我的问题是我必须实现一个具有3×6数组成员的类.我怎么做类似上面的事情?

class Bar {
   int coeff[3][6];
public:
   // what do I do for a constructor????
};

编辑:对于一个普通的数组,我会做以下,我只是不知道如何为一个类做:

static int myCoeffs[3][6] = 
 {{  1,2,3,4,5,6},{  7,8,9,10,11,12},{ 13,14,15,16,17,18}};

编辑2:由于各种原因(例如这是一个有限制的嵌入式系统)我不需要使用Boost,所以如果它提供了解决方案,我就无法使用它.

更新:我没有绑定初始化程序.在构造函数体中执行它是可以的,它也不必是内联的.我只是在寻找一种正确的方法来构造一个需要系数数组的类的实例,而不会弄乱指针赋值.

解决方法

你不能.在C 03中,您无法在ctor-initalization列表中初始化数组.但是你可以在构造函数体中完成它(技术上它不再是初始化).

那是

struct x
{
    int a[4];
    x():a({1,4}) //illegal
    {
        a[0] = 1;
        etc. 
    }
};

编辑:问题编辑后,这是一种方法

#include <algorithm>
struct x
{
   int arr[3][4];
   x(int (&arg)[3][4])
   {
      std::copy(&arg[0][0],&arg[0][0]+3*4,&arr[0][0]);
   }

};

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...