#include <iostream>
class Foo {
public:
int m_i; // member variable, m_xxx
Foo(int); // constructor taking an int.
};
static int s_i;
Foo::Foo(int i_) // arguments use _ suffix
{
int i = i_; // local value of i
i *= 3;
m_i = i; // we're assigning it the local value, not the argument.
}
int main()
{
int i = 1;
Foo foo(2);
s_i = 3;
std::cout << "i = "<<i<<", foo.m_i = "<<foo.m_i<<", s_i = "<<s_i<< std::endl;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KCiAgICBjbGFzcyBGb28gewogICAgcHVibGljOgogICAgICAgIGludCBtX2k7ICAvLyBtZW1iZXIgdmFyaWFibGUsIG1feHh4CiAgICAgICAgRm9vKGludCk7IC8vIGNvbnN0cnVjdG9yIHRha2luZyBhbiBpbnQuCiAgICB9OwoKICAgIHN0YXRpYyBpbnQgc19pOwoKICAgIEZvbzo6Rm9vKGludCBpXykgICAvLyBhcmd1bWVudHMgdXNlIF8gc3VmZml4CiAgICB7CiAgICAgICAgaW50IGkgPSBpXzsgICAgLy8gbG9jYWwgdmFsdWUgb2YgaQogICAgICAgIGkgKj0gMzsKICAgICAgICBtX2kgPSBpOyAgICAgICAvLyB3ZSdyZSBhc3NpZ25pbmcgaXQgdGhlIGxvY2FsIHZhbHVlLCBub3QgdGhlIGFyZ3VtZW50LgogICAgfQoKICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICBpbnQgaSA9IDE7CiAgICAgICAgRm9vIGZvbygyKTsKICAgICAgICBzX2kgPSAzOwoKICAgICAgICBzdGQ6OmNvdXQgPDwgImkgPSAiPDxpPDwiLCBmb28ubV9pID0gIjw8Zm9vLm1faTw8Iiwgc19pID0gIjw8c19pPDwgc3RkOjplbmRsOwogICAgfQo=