1. 程式人生 > >過載中碰到的左值和右值問題

過載中碰到的左值和右值問題

double & Student::operator[ ] (int i) {         return scores[i];  } double Student::operator[ ] (int i)const {         return scores[i]; } 對於 Student 的例項 stu 而言,stu[i]在第一個版本中可以為左值,而在第二個版本中只能為右值。 具體的例子如下: double & Student::operator[ ] (int i) {         return scores[i];  } 這個允許以下程式碼: Student s; s[0] = 100; double Student::operator[ ] (int i)const {         return scores[i]; } 這個只允許: double d = s[0];