class myClass
{
public:
myClass(int val=0):myValue(val) { cout << "In myClass constructor\n"; }
myClass(const myClass & rhs):myValue(rhs.myValue) { cout << "In myClass copy constructor\n"; }
~myClass() { cout << "In myClass Destructor\n"; }
int GetValue() const { return myValue; }
void SetValue(int theVal) { myValue = theVal; }
private:
int myValue;
};
void SomeFunction();
myClass &WorkFunction();
int main()
{
SomeFunction();
return 0;
}
myClass &WorkFunction()
{
myClass * pC = new myClass(5);
return *pC;
}
void SomeFunction()
{
myClass &rC = WorkFunction();
int value = rC.GetValue();
cout << "rC's value: " << value << endl;
myClass * pC = &rC; // get a pointer to the memory
delete pC; // oops, now rC is a reference to a null object!
}