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