MQL5Book/Scripts/p3/StructsComposition.mq5
super.admin 1c8e83ce31 convert
2025-05-30 16:09:41 +02:00

71 lines
1.6 KiB
MQL5

//+------------------------------------------------------------------+
//| StructsComposition.mq5 |
//| Copyright 2021, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
struct Inclosure
{
double X, Y;
};
struct Main
{
Inclosure data;
int code;
};
struct Main2
{
struct Inclosure2
{
double X, Y;
}
data;
int code;
};
struct Main3 : Inclosure
{
int code;
string xxx;
};
struct Base
{
const int mode;
string s;
Base(const int m) : mode(m) { }
};
struct Derived : Base // 'Base' - wrong parameters count
{
double data[10];
Derived() : Base(1) { }
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
Main m = {{0.1, 0.2}, -1}; // aggregate initialization
m.data.X = 1.0; // member-wise access
m.data.Y = -1.0;
Main2 m2 = {{0.1, 0.2}, -1}; // aggregate initialization
m2.data.X = 1.0; // member-wise access
m2.data.Y = -1.0;
Main3 m3 = {0.1, 0.2, -1};
m3.X = 1.0;
m3.Y = -1.0;
Inclosure in = {10, 100};
m3 = in;
Print(sizeof(Main)); // 20
Print(sizeof(Main2)); // 20
Print(sizeof(Main3)); // 20
}
//+------------------------------------------------------------------+