CSimpleClass.h
01: #ifndef CSIMPLECLASS_H_
02: #define CSIMPLECLASS_H_
03: 
04: /**
05:  * A simple class doing nothing.
06:  */
07: class CSimpleClass
08: {
09: private:
10:         int value;
11:         
12: public:
13:         CSimpleClass();
14:         CSimpleClass(int value);
15:         virtual ~CSimpleClass();
16: };
17: 
18: #endif /*CSIMPLECLASS_H_*/
CSimpleClass.cpp
01: #include <iostream>
02: #include "CSimpleClass.h"
03: 
04: CSimpleClass::CSimpleClass()
05: {
06:         this->value = 0;
07:         std::cout << "CSimpleClass in constructor(): " << value << " : " << this << "\n";
08: }
09: 
10: CSimpleClass::CSimpleClass(int value)
11: {
12:         this->value = value;
13:         std::cout << "CSimpleClass in constructor(int): " << value << " : " << this << "\n";
14: }
15: 
16: CSimpleClass::~CSimpleClass()
17: {
18:         std::cout << "CSimpleClass in destructor: " << value << " : " << this << "\n";
19: }
CSimpleContainer.h
01: #ifndef CSIMPLECONTAINER_H_
02: #define CSIMPLECONTAINER_H_
03: 
04: #include "CSimpleClass.h"
05: 
06: /**
07:  * A container class which references one CSimpleClass object.
08:  */
09: class CSimpleContainer
10: {
11: private:
12:         CSimpleClass mySimple;
13:         
14: public:
15:         CSimpleContainer();
16:         virtual ~CSimpleContainer();
17:         
18:         void setMySimple(const CSimpleClass &refSimple);
19: };
20: 
21: #endif /*CSIMPLECONTAINER_H_*/
CSimpleContainer.cpp
01: #include <iostream>
02: #include "CSimpleContainer.h"
03: 
04: CSimpleContainer::CSimpleContainer()
05: {
06:         std::cout << "CSimpleContainer constructor\n";
07: }
08: 
09: CSimpleContainer::~CSimpleContainer()
10: {
11:         std::cout << "CSimpleContainer destructor\n";
12: }
13: 
14: void CSimpleContainer::setMySimple(const CSimpleClass &refSimple)
15: {
16:         std::cout << "CSimpleContainer setMySimple: " << &refSimple << "\n";
17:         mySimple = refSimple;   
18: }
main.cpp
01: #include "CSimpleClass.h"
02: #include "CSimpleContainer.h"
03: 
04: int main(int argc, char** argv) {
05:         CSimpleContainer cont;
06:         
07:         CSimpleClass simple1(1);
08:         CSimpleClass simple2(2);
09:         
10:         cont.setMySimple(simple1);
11:         cont.setMySimple(simple2);
12: }
output
CSimpleClass in constructor(): 0 : 0xbfbcc238
CSimpleContainer constructor
CSimpleClass in constructor(int): 1 : 0xbfbcc248
CSimpleClass in constructor(int): 2 : 0xbfbcc240
CSimpleContainer setMySimple: 0xbfbcc248
CSimpleContainer setMySimple: 0xbfbcc240
CSimpleClass in destructor: 2 : 0xbfbcc240
CSimpleClass in destructor: 1 : 0xbfbcc248
CSimpleContainer destructor
CSimpleClass in destructor: 2 : 0xbfbcc238