注册 登录
编程论坛 C++教室

请教关于运算符重载相关

caoaihua3 发布于 2008-03-28 19:45, 851 次点击
为了完成程序,先做了一准务工作:完成了一个矩阵类arrays,
现在已经重载了运算符"()"来指向矩阵的一个元素,例如: x(i,j)就是指向第i行,第j列的元素,

现在想在此基础上用x(i,:)或者x(:,j)表示x的某一行或者某一列,
或者x(i,j1:j3)表示第i行,j1到j3列的元素,或者x(i1:i3,j)来表示i1:i3行,j列的元素.
请问大家怎么搞,可不可以自己搞一个运算符,
7 回复
#2
sunkaidong2008-03-28 20:04
所有的运算符都只能用现有的...重载是现有运算符号...
#3
caoaihua32008-03-28 21:54
难道就不能实现x(i,:)=fdfdf,x(:,j)=x(:,i)之类的形式???
#4
sunkaidong2008-03-28 22:06
好像不可以...要不你试试...
#5
aipb20072008-03-28 23:08
可以的,重载()里面的参数可以用字符串。
#6
野比2008-03-28 23:18
符号只能重载现有的,参数可以自定义
#7
caoaihua32008-03-29 14:32
()里面用字符串,你的意思是x(i,'row')之类的
#8
lonmaor2008-03-29 14:48
一家之言:
定义一个结构,再重载一下函数:
struct {
int begin;
int end;
}RANGE;

x(i,RANGE&);
x(RANGE&,i);
1