Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   C++ [C++] Assigned (https://www.delphipraxis.net/151591-%5Bc-%5D-assigned.html)

MrSpock 24. Mai 2010 16:03


[C++] Assigned
 
Hallo,

was ist das C++ Gegenstück der Object-Pascal Methode "Assigned", mit der ich prüfen kann, ob ein Object bereits existiert bzw. einem Objectpointer zugewiesen wurde?

Luckie 24. Mai 2010 16:08

Re: [C++] Assigned
 
Ein Test auf ungleich NULL.

Medium 24. Mai 2010 16:28

Re: [C++] Assigned
 
Auch gern genommen: if (myObjectPointer) { ... } - also impliziter Cast auf Bool. Über den Stil kann man sich sicherlich streiten...

MrSpock 24. Mai 2010 16:54

Re: [C++] Assigned
 
Danke. Hat funktioniert (hab Luckies Lösung genommen). Hatte zuerst Nil und Null versucht. Auf NULL bin ich nicht gekommen. :?

himitsu 24. Mai 2010 18:05

Re: [C++] Assigned
 
Zitat:

Zitat von Medium
Auch gern genommen: if (myObjectPointer) { ... } - also impliziter Cast auf Bool. Über den Stil kann man sich sicherlich streiten...

Ein BOOL ist in C 4 Byte (Integergröße), im Gegensatz zum Delphi 1-Byte-Boolean.

(BOOL <> 0) = true

also stellt dieses für mich kein Problem dar.
(nutze in Delphi aber auch ab und zu mal den LongBool für sowas)



Zitat:

Zitat von MrSpock
Hatte zuerst Nil und Null versucht. Auf NULL bin ich nicht gekommen. :?

Tja, C arbeitet in dieser Hinsicht casesensitiv :warn:

siehe BOOL=4 Byte und bool=1 Byte

Eherlich gesagt, mag ich deswegen die caseinsensitive Art von Delphi.

SirThornberry 24. Mai 2010 18:09

Re: [C++] Assigned
 
Medium hat mit seinem Kommentar bestimmt nicht darauf abgezielt wie groß der Typ ist auf den "gecastet" wird, sondern wollte damit bestimmt nur aussagen das der Pointer direkt als Wahrheitswert interpretiert wird.

himitsu 24. Mai 2010 18:16

Re: [C++] Assigned
 
Zitat:

Zitat von SirThornberry
sondern wollte damit bestimmt nur aussagen das der Pointer direkt als Wahrheitswert interpretiert wird.

Ich vermute aber auch stark, daß C keine automatische Größenanpassung durchführt,
also würde man bei
Code:
if bool(obj) {
(oder irgendwie so) nur das kleinste Byte geprüft. :gruebel:

Das war also nur zur Sicherheit, falls jemand auf die Idee mit einem expliziten Cast kommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz