C++ STL 多态

来源:百度知道 编辑:UC知道 时间:2024/05/10 04:46:21
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 = (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];
}
};

pole < double >po;

这个只是简单的类型不匹配错误,你下面这样改:
pole()
{
...
T** _zhzy[7] = {_M1, _M2, _M3, _M4, _M5, _M6, _M7};
M = _zhzy;
}

祝你成功!
_zhzy 是“这很重要”的意思 ^_^