Huono esimerkki:
class Foo { public: void setValue(int newValue) { m_value = newValue; } int getValue() { return m_value; } private: int m_value; }; ... // Ei näin, koska Foo-objektia ei kannata välittää oliona (koska olion kopiointi) void someFunction(Foo obj) { ... } ...
Toimimaton esimerkki:
class Foo { public: void setValue(int newValue) { m_value = newValue; } int getValue() { return m_value; } private: int m_value; }; ... // Tässä esimerkissä välitetään objekti const-viittauksena. void someFunction(const Foo& obj) { int val = obj.getValue(); // ERROR: tämä ei käänny, koska getValue-metodi ei ole const. } ...
Toimiva koodi:
class Foo { public: void setValue(int newValue) { m_value = newValue; } int getValue() const { return m_value; } private: int m_value; }; ... void someFunction(const Foo& obj) { int val = obj.getValue(); // nyt koodi kääntyy } ...