#include "stdafx.h"

//#include <string>
//
/////////////////////////////////////////////////////////////////////////////////
//
//// áàçîâûé òèïû
//
//char                charVar = -100;
//unsigned char       ucharVar = 200;
//
/////////////////////////////////////////////////////////////////////////////////
//
//struct Type1 {
//
//    char                field1;
//
//    unsigned char       field2;
//
//    double              field3;
//};
//
//Type1     var1 = { -121, 220, 1.0095f };
//
/////////////////////////////////////////////////////////////////////////////////
//
//
//enum Enum1 {
//
//    Enum1Val1 = 100,
//    Enum1Val2 = 200,
//    Enum1Val3 = 300
//};
//
//struct Type2 {
//
//    Enum1           field1;
//
//};
//
//
//Type2       var2 = { Enum1Val1 };
//
/////////////////////////////////////////////////////////////////////////////////
//
//
//namespace Namespace1 {
//
//
//    class Class1 {
//
//    public:
//
//        Class1( unsigned long v1 ) :
//            m_field1( v1 )
//            {}
//
//    private:
//
//        unsigned long       m_field1;
//
//    };
//
//    Class1      var3( 50 );
//
//    namespace Namespace2  {
//
//        class Class2 {
//
//        public:
//
//            Class2( const std::string &str ) :
//              m_field1 ( str )
//              {}
//
//        private:
//
//            std::string     m_field1;
//        };
//
//        Class2    var4( "hello" );
//
//    };
//};
//
/////////////////////////////////////////////////////////////////////////////////
//
//namespace Namespace3
//{
//
//    template<typename T>
//    class Class3
//    {
//    public:
//        Class3(T val): m_field1 (val)
//        {
//        }
//    private:
//        T m_field1;
//    };
//    
//    Class3<int> var5(5);
//
//};
/////////////////////////////////////////////////////////////////////////////////
//
//#pragma pack( push, 4 )
//
//struct Type4 
//{
//    int     field1;
//
//    struct {
//
//        int field2;
//
//        int field3;
//    };
//
//    struct {
//
//        int field41;
//
//    } field4;
//
//};
//
//Type4    var4 = {};
//
//#pragma pack( pop )
//
/////////////////////////////////////////////////////////////////////////////////
//
//class Type5 {
//
//private:
//
//    int     field1;
//    int     field2;
//
//public:
//
//    Type5() : field1(10), field2(20) {}
//};
//
//class Type6 {
//
//private:
//
//    int     field1;
//    Type5   *field2;
//    Type5   *field3[2];
//    Type5   **field4;
//
//public:
//
//    Type6()  {
//        field1 = 10;
//        field2 = new Type5;
//        field3[0] = new Type5;
//        field3[1] = new Type5;
//
//        field4 = &field2;
//    }
//
//    ~Type6() {
//        delete field2;
//    }
//         
//};
//
//Type6       var6;
//
/////////////////////////////////////////////////////////////////////////////////
//
//class Type7 {
//
//private:
//
//    Type5       field1[10];
//
//    Type5       field2[2][2];
//
//    int         field3[2][2][2];
//
//};
//
//Type7       var7;
//
/////////////////////////////////////////////////////////////////////////////////