写了以下代码,目的是重载[]运算符, 编译运行没问题,但把11行的char&改成char时就会出问题,提示返回值不能做左值(23行操作).为什么呢
1 #include <iostream>
2 using namespace std;
3
4 class array{
5 public:
6 array()
7 {
8 m_array[0] = '\0';
9 }
10
11 char& operator[] (int a)
12 {
13 return m_array[a];
14 }
15
16 private:
17 char m_array[30];
18 };
19
20 int main()
21 {
22 array ar;
23 ar[0] = 'a';
24 cout << ar[0] << endl;
25 // cout << ar << endl;
26 } |