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

大家来看一下~!小弟有问题呀~!!

lionmusicyj 发布于 2008-10-16 00:52, 691 次点击
问题一:
小弟刚学类,照书上敲了一点代码,但是有一行看不懂~!望各位指点一下~!
具体代码如下:
#include <iostream>
using namespace std;
class funarry
{
   int *pa;
   int size;
   public:
      funarry(int a[],int thesize):pa(a),size(thesize){}
      int Size(){return size;}
      int & operator[](int index){return pa[index-1];}  //这一行不知道表示意思~如果把这行忽略,那么ma[3]=9就会报错~!请问这是为什么呢?
};
int main()
{
   int s[]={3,7,2,1,5,4};
   funarry ma(s,sizeof(s)/sizeof(int));
   ma[3]=9;
   for(int i=1;i<=ma.Size();i++)
   cout<<ma[i]<<',';
   cin.get();
}
7 回复
#2
lionmusicyj2008-10-16 09:45
!!!为什么这么多大哥看了,都不回呢??
#3
blueboy820062008-10-16 12:30
这是
重载下标操作符[]

你要是刚学类,建议你就先不要看这些..
先把基础弄好...
#4
heyyroup2008-10-16 14:27
操作符重载,去翻一下书吧,不难的
#5
choco10242008-10-16 16:50
先看基本的吧,
#6
debroa7232008-10-16 18:58
对运算符[]重新定义功能,那么在funarry类里,[]就是一个函数了,它将会返回自己成员pa的第index个元素的引用,换句话说就是可以直接用ma[3]=9;的形式来修改成员pa的某个元素的值了(仅对该函数而言的)。
#7
kakaqq2008-10-16 19:44
重载···脑袋都大了。
#8
lionmusicyj2008-10-17 12:33
谢谢各位了~
知道是啥了~!呵呵~!
我刚刚接触类
书上有这么道例题,我把它敲了一下~!
嘿嘿`!
1