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
}

...