template < typename T >
struct pole
{
int ray;
int mod;
T **C;
T **A, **B;
T ***M;
pole () {
ray = 0;
mod = 0;
C = NULL;
A = B = NULL;
M = NULL;
}
pole (
int _ray,
int _mod,
T **_C,
T **_A, T **_B,
T **_M1,T **_M2,T **_M3,T **_M4,T **_M5,T **_M6,T **_M7
) {
ray = _ray,
mod = _mod,
C = _C,
A = _A, B = _B;
M = new (T **[]){_M1, _M2, _M3, _M4, _M5, _M6, _M7};
}
void unpack (
int (&_ray),
int (&_mod),
T **(&_C),
T **(&_A), T **(&_B),
T **(&_M1),T **(&_M2),T **(&_M3),T **(&_M4),T **(&_M5),T **(&_M6),T **(&_M7)
) {
_ray = ray,
_mod = mod,
_C = C,
_A = A, _B = B,
_M1 = M[0],
_M2 = M[1],
_M3 = M[2],
_M4 = M[3],
_M5 = M[4],
_M6 = M[5],
_M7 = M[6];
}
};
M = new (T **[]){_M1, _M2, _M3, _M4, _M5, _M6, _M7};
上面这一句哪里不行了?
po = pole<double> (
ray, mod, C, A, B,
M1, M2, M3, M4, M5, M6, M7);
这么应用不行啊?假设各元素都正确建立了