- 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