#include
using namespace std;
class stu
{
public:
int a,
b,
c,
nError;
double d;
stu()
{
a = 12;
c = 13;
b = 14;
d = 45.45;
nError = -1;
}
void* operator [](int m)
{
switch (m)
{
case 0:
return &a;
case 2:
return &d;
}
return &nError;
}
};
//int operator [](stu& db, int m)//[]只能在类内进行下标运算符的重载。
//{
// switch (m)
// {
// case 0:
// return db.a;
// case 2:
// return db.b;
// default :
// break;
// }
// return -1;
//}
int main()
{
stu db;
cout << *(double*)db[2]<
system("pause");
return 0;
}



