Конференция "Прочее" » Конструкторы в record
 
  • K-1000 © (31.10.16 13:48) [0]
    Если ли сабж в Delphi, если есть то с какой версии.
    По примеру из C++:


    struct color
    {
       float r;
       float g;
       float b;
       float a;

       static color construct(float r = 0.0f, float g = 0.0f, float b = 0.0f, float a = 1.0f) {
           color result = { r, g, b, a }
    ;
           return result;
       }
    };


  • Игорь Шевченко © (31.10.16 14:05) [1]
    c 2005
  • DayGaykin © (31.10.16 14:05) [2]
  • NoUser © (31.10.16 15:37) [3]
    http://docwiki.embarcadero.com/RADStudio/Seattle/en/Structured_Types#Records_.28advanced.29 (D2009+ ?)

    > static color construct...
    это не сабж в C++, и такое есть в Delphi

     TColor = record
       R,G,B,A : Single;
       class function Create(aR:Single=0.0; aG:Single=0.0; aB:Single=0.0; aA:Single=1.0):TColor; static;
     end

    // var Color : TColor;
    // Color := TColor.Create;



    но если нужно так
    struct color
    {
    float r;
    float g;
    float b;
    float a;

    color(float ar = 0.0f, float ag = 0.0f, float ab = 0.0f, float aa = 1.0f)
    {
     r = ar;
     g = ag;
     b = ab;
     a = aa;
    }

    };
    //   color Color;  // компилятор сам добавит вызов конструктора


    то такого в Delphi нет (только инициалицация дин. массивов/строк внутри record).
  • DayGaykin © (31.10.16 16:04) [4]

    > //   color Color;  // компилятор сам добавит вызов конструктора
    >
    > то такого в Delphi нет

    На C++ это и есть вызов конструктора.

    На дельфи переводится как:
    Color := color.create();
 
Конференция "Прочее" » Конструкторы в record
Есть новые Нет новых   [134431   +15][b:0][p:0.001]