我想由一个矩阵类写一个矩阵句柄类,请高手指点一个问题
原矩阵类如下
template <class T>
class matrix
{
int iRow;
int iCol;
T* ptr;
public:
T* operator[](int i)const{return ptr + i * iCol;}
//...
};
现在可以有如下操作:
int a;
matrix<int> m(row,col);
a = m[i][j]; //读操作
m[i][j] = a; //写操作
我想在矩阵句柄类中也包含此操作,但使用写时复制技术,
请教各位有没有办法能够做到这一点?
问题点数:50、回复次数:6Top
1 楼freefalcon(心宇—消失中...)回复于 2004-08-04 11:15:06 得分 25
如果你知道句柄类和写时复制的一般实现方法,这也没有什么两样啊
主要就是在运算符重载函数中处理
Effective C++有这方面的例子Top
2 楼caohoujie()回复于 2004-08-04 11:45:07 得分 0
写时复制的一般实现方法是定义两组函数,一组读,一组写。
例如:
class Point{
int xval,yval;
int x()const{return xval;} //读
int y()const{return yval;} //读
Point& x(int x0){//...} //写
Point& y(int y0){//...} //写
};
这两组函数的参数不一样。
而我想实现的方法是通过运算符重载,
参数是一样的:
int a;
matrix<int> m(row,col);
a = m[i][j]; //读操作
m[i][j] = a; //写操作
Top
3 楼caohoujie()回复于 2004-08-04 11:46:09 得分 0
怎样处理?能不能给出一种具体的方法?谢谢Top
4 楼caohoujie()回复于 2004-08-09 18:41:26 得分 0
-_-Top
5 楼kerbcurb()回复于 2004-08-09 19:59:58 得分 25
www.techsoftftp1.com有一个matrix,很全面,可以参考一下Top
6 楼caohoujie()回复于 2005-01-14 17:47:00 得分 0
前几个月看《C++沉思录》,人家andrew konig大师说了,没招Top




