samedi 23 janvier 2021

c++ reference to a class member but not changing value

Please help me to review the following code.

I am wondering why the variable "b" is not the modified value.

I can not change the value using reference ?

Thanks!

#include <iostream>

using namespace std;

class Foo{
    public:
        int a = 1;
        int& check(){
            return a;
        };
};

int main()
{
    int b;
    Foo foo;
    
    b = foo.check();
    cout << b << endl;
    
    foo.check() = 2;
    cout << foo.a << endl;
    cout << b << endl;

    return 0;
}

The output is

1
2
1

Aucun commentaire:

Enregistrer un commentaire