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: 2012-03-02 | © 2012 Alan Ezust and Paul Ezust. |