Sample code:

```
MyItemType a;
MyItemType b;
a.someNumber = 5;
b = a;

cout << a.someNumber << endl;
cout << b.someNumber << endl;

b.someNumber = 10;

cout << a.someNumber << endl;
cout << b.someNumber << endl;

```

The output:

```
5
5
5
10

```

If a and b were reference types, the last 2 lines would have been 10 and 10 instead of 5 and 10 I guess.

Does this mean when you do a declaration like this:

```
AClassType anInstance;

```

it is treated like a value type?

------Here is MyItemType.h------------

```
#ifndef MYITEMTYPE_H
#define MYITEMTYPE_H

class MyItemType{

public:
    int someNumber;
    MyItemType();
};

MyItemType::MyItemType(){
}

#endif  /* MYITEMTYPE_H */

```