Подскажите пожалуйста

 

Товарищи разработчики подскажите пожалуйста: есть 2 структуры, обе имеют конструкторы. Хочу во вторую структуру добавить первую, но возникли проблемы с конструкторами. 

//Структура 1 (внутренняя)
struct TYPE_S_bid_ask_prices //Структура для хранения полученных цен из стакана
  {
   double            ASK;
   double            BID;
   string            symbol;
   //Конструктор
   TYPE_S_bid_ask_prices(string i_symbol);
  }
TYPE_S_bid_ask_prices::TYPE_S_bid_ask_prices(string i_symbol)
  {
   symbol = i_symbol;
  }

//Cтруктура 2 (наружная)
struct TYPE_S_S
  {
   datetime              time;
   TYPE_S_bid_ask_prices prices(string i_symbol);
   //Конструктор
   TYPE_S_S_tab(string i_symbol);
  }
TYPE_S_S::TYPE_S_S(string i_symbol)
  {
   TYPE_S_bid_ask_prices price(i_symbol);
  }


TYPE_S_S g_tab(string i_symbol);

int OnInit()
  {
   TYPE_S_S g_tab (Symbol());
   g_tab.price.symbol = !!!!!!!
  }

 При таком варианте ошибок при компиляции, но подструктуры нету.

Подскажите, что не так. 

 
KhaidariN:

Товарищи разработчики подскажите пожалуйста: есть 2 структуры, обе имеют конструкторы. Хочу во вторую структуру добавить первую, но возникли проблемы с конструкторами. 

 При таком варианте ошибок при компиляции, но подструктуры нету.

Подскажите, что не так. 

Ни фига не понял вопрос, а это что вообще?

g_tab.price.symbol = !!!!!!!
 
Alexey Volchanskiy:

Ни фига не понял вопрос, а это что вообще?

Это то место где затык. В этом месте, невозможно обратиться к полям подструктуры.

 

А вопрос попробую переформулировать: как объявлять вложенную структуру, в структуре, если у обеих имеется не дефолтный конструктор. Т.ч. при вызове конструктора верхней структуры, вызывался конструктор подструктуры.

 
В структуре 2 имя конструктора не соответствует имени структуры. Поле price отсутствует вообще.
 
//Структура 1 (внутренняя)
struct SInternal{
   double            ASK;
   double            BID;
   string            symbol;  
};

//Cтруктура 2 (наружная)
struct SOuter{

   datetime                time;
   SInternal               price;

   SOuter(string aSymbol){
         price.symbol=aSymbol;
   }
};

void OnStart(){
   SOuter x(Symbol());
   Alert(x.price.symbol);
}
Причина обращения: