Passing references to objects : reference parameter « Function « C++ Tutorial






#include <iostream>
 
 class MyClass
 {
 public:
     MyClass();
     MyClass(MyClass&);
     ~MyClass();
 
     int GetAge() const { return itsAge; }
     void SetAge(int age) { itsAge = age; }
 
 private:
     int itsAge;
 };
 
 MyClass::MyClass()
 {
     std::cout << "Simple Cat Constructor...\n";
     itsAge = 1;
 }
 
 MyClass::MyClass(MyClass&)
 {
     std::cout << "Simple Cat Copy Constructor...\n";
 }
 
 MyClass::~MyClass()
 {
     std::cout << "Simple Cat Destructor...\n";
 }
 
 const MyClass & f (const MyClass & obj);
 
 int main()
 {
     MyClass myObject;
     std::cout << "myObject is " << myObject.GetAge() << " years old\n";
 
     int age = 5;
     myObject.SetAge(age);
     std::cout << "myObject is " << myObject.GetAge() << " years old\n";
 
     std::cout << "Calling f...\n";
     f(myObject);
     std::cout << "myObject is " << myObject.GetAge() << " years old\n";
     return 0;
 }
 
 const MyClass & f (const MyClass & obj)
 {
     std::cout << "Function Two. Returning...\n";
     std::cout << "myObject is now " << obj.GetAge()<< " years old \n";
     return obj;
 }
Simple Cat Constructor...
myObject is 1 years old
myObject is 5 years old
Calling f...
Function Two. Returning...
myObject is now 5 years old
myObject is 5 years old
Simple Cat Destructor...








7.4.reference parameter
7.4.1.Using a reference parameter.
7.4.2.Use reference parameters to create the swap() function.
7.4.3.Pass by reference by using pointer
7.4.4.Pass by reference using references
7.4.5.Returning multiple values from a function using references
7.4.6.Passing references to objects