分类: C/C++
2008-04-15 21:00:52
来源:blog 作者:fatalerror99 |
迄今为止,还不错,但是有一个棘手的问题我们还没有提及。SquareMatrixBase::invert 怎样知道应操作什么数据?它从它的参数知道矩阵的大小,但是它怎样知道一个特定矩阵的数据在哪里呢?大概只有 derived class(派生类)才知道这些。derived class(派生类)如何把这些传达给 base class(基类)以便于 base class(基类)能够做这个转置呢?
这样就是让 derived classes(派生类)决定如何分配内存。某些实现可能决定直接在 SquareMatrix object 内部存储矩阵数据:
这种类型的 objects 不需要 dynamic memory allocation(动态内存分配),但是这些 objects 本身可能会非常大。一个可选方案是将每一个矩阵的数据放到 heap(堆)上:
|