In Example 5.18, the compiler can tell the difference between calls to the const and to the non-const versions of operator[] based on the const-ness of the object.
Example 5.18. src/const/overload/constoverload-client.cpp
#include "constoverload.h"
#include <iostream>
int main( ) {
using namespace std;
Point3 pt1(1.2, 3.4, 5.6);
const Point3 pt2(7.8, 9.1, 6.4);
double d ;
d = pt2[2];
cout << d << endl;
d = pt1[0];
cout << d << endl;
d = pt1[3];
cout << d << endl;
pt1[2] = 8.7;
cout << pt1 << endl;
// pt2[2] = 'd';
cout << pt2 << endl;
return 0;
}
Which operator is called for each of the notes?
Why is the last assignment commented out?
[ fromfile: constoverloading.xml id: None ]
| Generated: $Date: 2009-09-08 12:15:32 -0400 (Tue, 08 Sep 2009) $ | © 2009 Alan Ezust and Paul Ezust. |