#include using namespace std; class Thing { public: Thing(int v) : value(v) {} int value; }; Thing *obj; void func1(Thing *parm1) { parm1->value = 111; cout << "In func1: parm1->value = " << parm1->value << endl; } void func2(Thing* &parm2) { parm2 = new Thing(222); cout << "In func2: parm2->value = " << parm2->value << endl; cout << "In func2: obj->value = " << obj->value << endl; } int main() { obj = new Thing(111); cout << "In main before call to func1: obj->value = " << obj->value << endl; cout << endl; func1(obj); cout << "In main after call to func1: obj->value = " << obj->value << endl; cout << endl; func2(obj); cout << "In main after call to func2: obj->value = " << obj->value << endl; return 0; }