AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variable.Create;

Ein Thema von himitsu · begonnen am 5. Mär 2014 · letzter Beitrag vom 10. Mär 2014
Antwort Antwort
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#1

AW: Variable.Create;

  Alt 10. Mär 2014, 11:06
Geht dann nicht mehr? Das geht doch seit Pascal 0.1a so... würde mich doch sehr stark wundern, wenn 99.999% der legacy Delphi-Software dann nicht mehr funktioniert.
Hinter dem Link steht es doch:
Zitat:
Records are constructed automatically, using a default no-argument constructor, but classes must be explicitly constructed. Because records have a default no-argument constructor, ...
Also gibt es einen implizieten Aufruf eines Default-Constructors, welcher nichts macht (und vermutlich auch keinen Code produziert).
Ich gebe zu, dass das Ganze etwas angeflanscht wirkt
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Variable.Create;

  Alt 10. Mär 2014, 11:16
Geht dann nicht mehr? Das geht doch seit Pascal 0.1a so... würde mich doch sehr stark wundern, wenn 99.999% der legacy Delphi-Software dann nicht mehr funktioniert.
Hinter dem Link steht es doch:
Zitat:
Records are constructed automatically, using a default no-argument constructor, but classes must be explicitly constructed. Because records have a default no-argument constructor, ...
Also gibt es einen implizieten Aufruf eines Default-Constructors, welcher nichts macht (und vermutlich auch keinen Code produziert).
Ich gebe zu, dass das Ganze etwas angeflanscht wirkt
Natürlich macht der Default-Record-Constructor etwas => der reserviert den Speicherbereich.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Variable.Create;

  Alt 10. Mär 2014, 11:28
Natürlich macht der Default-Record-Constructor etwas => der reserviert den Speicherbereich.
Mhm, so kann man das auch sehen.

Wirkt trotzdem ziemlich krude.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Variable.Create;

  Alt 10. Mär 2014, 12:53
Natürlich macht der Default-Record-Constructor etwas => der reserviert den Speicherbereich.
Ruft der eigene Konstruktor dann den default constructor auf?

Muss ich also den eigenen Konstruktor aufrufen oder nicht?
Wenn ja => Konstruktor hat seinen Namen verdient.
Wenn nein => Ist das kein Konstruktor.
Delphi-Quellcode:
Type
  TMyRecord = Record
    bar : Integer;
     Constructor Foo(Bar : Integer);
  End;

Constructor TMyRecord.Foo(Bar : Integer);
Begin
  Self.bar := Bar;
End;

Var
  x,y : TMyRecord;

Begin
  y.Foo(27); // Muss man das so machen?
  x.bar := 27; // Oder geht es auch so? Knallt es hier?
Könnte das mal jemand testen? Danke....

Geändert von Furtbichler (10. Mär 2014 um 12:56 Uhr)
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: Variable.Create;

  Alt 10. Mär 2014, 12:54
Natürlich macht der Default-Record-Constructor etwas => der reserviert den Speicherbereich.
Der Default-Record-Constructor wäre System._InitializeRecord, welches aber keinen Speicherplatz reserviert, sondern nur die Managed-Felder (String, Interface, dyn. Array) mit nil initialisiert. Der Speicher wird direkt vom Compiler einbezogen, sofern der Record nicht auf dem Heap liegt, wo man ihn selbst mit New und Dispose verwalten muss.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz