c++下标运算符

来源:百度知道 编辑:UC知道 时间:2024/05/30 09:36:57
各们C++高手,请您们帮帮小弟好吗?
下面的程序有几处地方,小弟实在弄不明白

#include<iostream.h>
#include<stdlib.h>
class array{
int*p;
int size;
public:
array(int i=10){p=new int[i]; size=i;}
~array(){delete []p;}
int getsize() const{return size;} \\\\\\\\\A\\\\\\\\
int& operator[](int index);
};
int& array::operator[](int index) \\\\\\\B\\\\\\\\
{ if(index>=0&&index<size) return p[index];
else{cout<<"\n出错:下标"<<index<<"越界!\n"; exit(2);}
}
void main()
{array a(10); \\\\\\\\\\\\\C\\\\\\\\\\\\\\\\
for(int i=0;i<10;i++) a[i]=i;
for(i=1;i<11;i++)
cout<<a[i]<<' '

#include<iostream.h>
#include<stdlib.h>
//array是一个类,有getsize、operator[]等成员函数,注意是一个int型的数组!
class array{
int*p;
int size;
public:
array(int i=10){p=new int[i]; size=i;}
~array(){delete []p;}
int getsize() const{return size;} //如果你没用这个功能可以去掉。这是取得数组维数的。
int& operator[](int index);
};

int& array::operator[](int index) //这是在类的外面来定义上面声明的operator[]函数。
{ if(index>=0&&index<size) return p[index];
else{cout<<"\n出错:下标"<<index<<"越界!\n"; exit(2);}
}
void main()
{array a(10); //这是调用了你在类中的构造函数啊!!这样就可以构造一个对象!!
for(int i=0;i<10;i++) a[i]=i;
for(i=1;i<11;i++) //这里就可以看出operator[]函数的作用了
cout<<a[i]<<' ';
}
//operator是操作符重载,通俗点说就是你可以用[]符号来定义自己的功能。[]放一个型参。
//而operator=就要放2个型参了,因为=为2元参作符。

以下是C++编程语言中的所有运算符的优先级和结合性列表。

优先级运算符叙述示例重载性结合性1::作用域解析(C++专有)Class::age = 2;否由左