Passing pointers to objects : object parameters « Function « C++ Tutorial






#include <iostream>
 
 class MyClass
 {
 public:
     MyClass ();                    // constructor
     MyClass(MyClass&);             // copy constructor
     ~MyClass();                    // destructor
 };
 
 MyClass::MyClass()
 {
     std::cout << "Constructor...\n";
 }
 
 MyClass::MyClass(MyClass&)
 {
     std::cout << "Copy Constructor...\n";
 }
 
 MyClass::~MyClass()
 {
     std::cout << "Destructor...\n";
 }
 
 MyClass FunctionOne (MyClass obj);
 MyClass* FunctionTwo (MyClass *obj);
 
 int main()
 {
     std::cout << "Making an object...\n";
     MyClass myObject;
     std::cout << "Calling FunctionOne...\n";
     FunctionOne(myObject);
     std::cout << "Calling FunctionTwo...\n";
     FunctionTwo(&myObject);
     return 0;
 }
 
 // FunctionOne, passes by value
 MyClass FunctionOne(MyClass obj)
 {
     std::cout << "Function One. Returning...\n";
     return obj;
 }
 
 // functionTwo, passes by reference
 MyClass* FunctionTwo (MyClass  *obj)
 {
     std::cout << "Function Two. Returning...\n";
     return obj;
 }
Making an object...
Constructor...
Calling FunctionOne...
Copy Constructor...
Function One. Returning...
Copy Constructor...
Destructor...
Destructor...
Calling FunctionTwo...
Function Two. Returning...
Destructor...








7.5.object parameters
7.5.1.Pass an object to a function
7.5.2.Constructors, destructors, and passing objects
7.5.3.Copy constructor invoked when passing an object to a function
7.5.4.Passing pointers to objects
7.5.5.Data slicing with passing by value
7.5.6.Passing Objects to Functions