I'm new to C++, and are confused about sth
I'm going to define a class, and when should I define a member a pointer? or when should I define a member a value? or when should I just define it as a reference?
what confused me is when I read the book TCPL 24.3.3 It said that "The pointer solution should be used when there is a need to change the pointer to the ‘‘contained’’ object during the life of the ‘‘containing’’ object. For example:
class C
{
    int a;
public:
    C(int i):a(i){};
};
class C2
{
    C a;
    C *p;
public:
    C2(int i):a(i), p(new C(i)){};
    ~C2(){delete p;}
    C ChangeValue(C c)
    {
        C temp = a;
        a = c;
        return temp;
    }
    C* ChangePointer(C *c)
    {
        C* temp = p;
        p = c;
        return temp;
    }
};
I think there is no difference using a valus as a class member....
please help me through this:)
 
     
    