Data Slicing With Passing by Value : reference « Data Type « C++

Home
C++
1.Bitset
2.Class
3.Console
4.Data Structure
5.Data Type
6.Deque
7.Development
8.File
9.Function
10.Generic
11.Language
12.List
13.Map Multimap
14.Overload
15.Pointer
16.Qt
17.Queue Stack
18.Set Multiset
19.STL Algorithms Binary search
20.STL Algorithms Heap
21.STL Algorithms Helper
22.STL Algorithms Iterator
23.STL Algorithms Merge
24.STL Algorithms Min Max
25.STL Algorithms Modifying sequence operations
26.STL Algorithms Non modifying sequence operations
27.STL Algorithms Sorting
28.STL Basics
29.String
30.Valarray
31.Vector
C / ANSI-C
C Tutorial
C++ Tutorial
Visual C++ .NET
C++ » Data Type » referenceScreenshots 
Data Slicing With Passing by Value
  
#include <iostream>
using namespace std;

class Mammal{
  public:
     Mammal():itsAge(1) { }
     virtual ~Mammal() { }
     virtual void Speak() const cout << "Mammal speak!" << endl; }

  protected:
     int itsAge;
};

class Dog : public Mammal{
  public:
    void Speak()const cout << "Woof!" << endl; }
};

class Cat : public Mammal
{
  public:
    void Speak()const cout << "Meow!" << endl; }
};

void ValueFunction (Mammal);
void PtrFunction (Mammal*);
void RefFunction (Mammal&);
int main()
{
   Mammal* ptr=0;
   int choice;
   while (1)
   {
      bool fQuit = false;
      cout << "(1)dog (2)cat (0)Quit: ";
      cin >> choice;
      switch (choice)
      {
          case 0: fQuit = true;
                  break;
          case 1: ptr = new Dog;
                  break;
          case 2: ptr = new Cat;
                  break;
          default: ptr = new Mammal;
                   break;
      }
      if (fQuit == true)
         break;
      PtrFunction(ptr);
      RefFunction(*ptr);
      ValueFunction(*ptr);
   }
   return 0;
}

void ValueFunction (Mammal MammalValue)
{
   MammalValue.Speak();
}

void PtrFunction (Mammal * pMammal)
{
   pMammal->Speak();
}

void RefFunction (Mammal & rMammal)
{
   rMammal.Speak();
}
  
    
  
Related examples in the same category
1.constant references
2.returning a reference to a string
3.using references for int
4.Reassigning a reference
5.Taking the Address of a Reference
6.swap() Rewritten with References
7.Passing by Reference Using Pointers
8.Passing Objects by Reference
9.Passing References to Objects
10.Returning multiple values from a function using references
11.Creating and Using References for integer
12.References for int type variable
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.