Hello all. I created the program at the bottom as a test as I was having problems with Aggregation Assocation in my assignment. The program below has the person class that we created in the last post but now it also has a new link class with two functions. The first function sets the pointer to the person, the second increases the person’s age by one. You can see that I have commented out the orginal command that sets the person’s age.
A pointer is a link to the RAM address of something else, in this case a instance of the person class. You access a pointer’s public functions / variables by the -> symbol. So pointer->setValue(newValue) would run the setValue function of what the pointer is connected too.
A Aggregation Assocation is a connection between two classes that do not own one another. For example a pet belongs to it’s owner but a student does not belong to a school as student and school are both independant entities that are connected. 
This is something I did quickly and thought I’d stick online so if you have any questions leave a comment and I’ll get back to you.
[source language=”cpp”]#include <iostream>
#include <string>
using namespace std;
class person
{
  private:
    int age;
    string name;
  public:
    // Constructors
    person();
    person(string newName, int newAge);
    // Accessors
    string getName() { return name; };
    int getAge() { return age; };
    // datatype getVariable() { return variable; };
    // Mutators
    void setName(string newName);
    void setAge(int newAge);
    // void setVariable(datatype newVariable);
};
person::person()
{
  name = "Stranger";
  age = 100;
}
person::person(string newName, int newAge)
{
  name = newName;
  age = newAge;
}
void person::setName(string newName)
{
  name = newName;
}
void person::setAge(int newAge)
{
  age = newAge;
}
///////////////////////////////////////////////////
class pointerClass
{
  private:
    person *link; // pointer to a person
  public:
    void setLink(person * newLink); // set the pointer to a person you’ve created
    void incAge(); // increase their age by one
};
// set the pointer to a person you’ve created
void pointerClass::setLink(person * newLink)
{
  link = newLink;
}
// Increse their age by one.
void pointerClass::incAge()
{
  int temp = link->getAge(); //get Age
  // cout << "temp: " << temp << endl; // output orginal age
  link->setAge(++temp); // inc and set new age.
  // cout << "temp: " << temp << endl; // output new age
}
///////////////////////////////////////////////////
int main()
{
  pointerClass myLink;
  person steve("Steve", 20);
  myLink.setLink(&steve);
  cout << steve.getAge() << endl;
  // steve.setAge(21);
  myLink.incAge();
  cout << steve.getAge() << endl;
}[/source]