2011-07-27 19:07:14 +08:00
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
|
2011-07-27 22:50:48 +08:00
|
|
|
|
#include <string>
|
|
|
|
|
|
2011-07-27 19:07:14 +08:00
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
char charVar = -100;
|
|
|
|
|
unsigned char ucharVar = 200;
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
struct Type1 {
|
|
|
|
|
|
|
|
|
|
char field1;
|
|
|
|
|
|
|
|
|
|
unsigned char field2;
|
|
|
|
|
|
2011-07-27 22:50:48 +08:00
|
|
|
|
double field3;
|
2011-07-27 19:07:14 +08:00
|
|
|
|
};
|
|
|
|
|
|
2011-07-27 22:50:48 +08:00
|
|
|
|
Type1 var1 = { -121, 220, 1.0095f };
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
2011-07-27 19:07:14 +08:00
|
|
|
|
|
2011-07-27 22:50:48 +08:00
|
|
|
|
enum Enum1 {
|
|
|
|
|
|
|
|
|
|
Enum1Val1 = 100,
|
|
|
|
|
Enum1Val2 = 200,
|
|
|
|
|
Enum1Val3 = 300
|
|
|
|
|
};
|
2011-07-27 19:07:14 +08:00
|
|
|
|
|
|
|
|
|
struct Type2 {
|
|
|
|
|
|
|
|
|
|
Enum1 field1;
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
2011-07-27 22:50:48 +08:00
|
|
|
|
|
2011-07-27 19:07:14 +08:00
|
|
|
|
Type2 var2 = { Enum1Val1 };
|
|
|
|
|
|
2011-07-27 22:50:48 +08:00
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
2011-08-24 22:41:53 +08:00
|
|
|
|
|
2011-07-27 22:50:48 +08:00
|
|
|
|
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" );
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2011-08-15 03:37:59 +08:00
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
namespace Namespace3
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
template<typename T>
|
|
|
|
|
class Class3
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
Class3(T val): m_field1 (val)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
private:
|
|
|
|
|
T m_field1;
|
|
|
|
|
};
|
|
|
|
|
|
2011-08-15 03:45:23 +08:00
|
|
|
|
Class3<int> var5(5);
|
2011-08-15 03:37:59 +08:00
|
|
|
|
|
|
|
|
|
};
|
2011-08-24 22:41:53 +08:00
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
#pragma pack( push, 4 )
|
|
|
|
|
|
|
|
|
|
struct Type4
|
|
|
|
|
{
|
|
|
|
|
int field1;
|
|
|
|
|
|
|
|
|
|
struct {
|
|
|
|
|
|
|
|
|
|
int field2;
|
|
|
|
|
|
|
|
|
|
int field3;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct {
|
|
|
|
|
|
|
|
|
|
int field41;
|
|
|
|
|
|
|
|
|
|
} field4;
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Type4 var4 = {};
|
|
|
|
|
|
|
|
|
|
#pragma pack( pop )
|
|
|
|
|
|
2011-08-25 14:14:24 +08:00
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
class Type5 {
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
int field1;
|
|
|
|
|
int field2;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
Type5() : field1(10), field2(20) {}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class Type6 {
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
int field1;
|
|
|
|
|
Type5 *field2;
|
|
|
|
|
Type5 *field3[2];
|
2011-08-25 16:04:04 +08:00
|
|
|
|
Type5 **field4;
|
2011-08-25 14:14:24 +08:00
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
Type6() {
|
|
|
|
|
field1 = 10;
|
|
|
|
|
field2 = new Type5;
|
|
|
|
|
field3[0] = new Type5;
|
|
|
|
|
field3[1] = new Type5;
|
2011-08-25 16:04:04 +08:00
|
|
|
|
|
|
|
|
|
field4 = &field2;
|
2011-08-25 14:14:24 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
~Type6() {
|
|
|
|
|
delete field2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Type6 var6;
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
class Type7 {
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
Type5 field1[10];
|
|
|
|
|
|
|
|
|
|
Type5 field2[2][2];
|
|
|
|
|
|
|
|
|
|
int field3[2][2][2];
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Type7 var7;
|
|
|
|
|
|
2011-07-27 19:07:14 +08:00
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|