Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2019.03.31;
Скачать: CL | DM;

Вниз

Конструкторы в record   Найти похожие ветки 

 
K-1000 ©   (2016-10-31 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;
   }
};



 
Игорь Шевченко ©   (2016-10-31 14:05) [1]

c 2005


 
DayGaykin ©   (2016-10-31 14:05) [2]

Есть
http://docwiki.embarcadero.com/RADStudio/Seattle/en/Structured_Types#Records_.28advanced.29
Версию не знаю.


 
NoUser ©   (2016-10-31 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 ©   (2016-10-31 16:04) [4]


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

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

На дельфи переводится как:
Color := color.create();



Страницы: 1 вся ветка

Текущий архив: 2019.03.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.003 c
15-1477910892
K-1000
2016-10-31 13:48
2019.03.31
Конструкторы в record


2-1478697385
валя
2016-11-09 16:16
2019.03.31
Проблема с TImage


2-1477992273
Михалыч
2016-11-01 12:24
2019.03.31
Округление чисел