🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1424

Re: Kann this Pointer NULL sein?

#1424
From: Enno Sandner
Date: Sun, 28 Jan 1996 13:40
33 lines
1601 bytes
In article <0YZ8BLIJ@wuschel.ibb.schwaben.com> uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz) writes:

   Ist es legal, non-virtual Funktionen ueber ein Nicht existierendes Objekt
   (NULL) aufzurufen und dann in der Member Function den Fall abzuhandeln, dass
   der this Pointer NULL ist?

   D.h. sowas wie

       Aufruf:

	   Window* W = NULL;
	   ...
	   Window->Write ("...");


       In der Member Function:

	   if (this == NULL) {
	       // Object pointer is NULL, do nothing
	       return;
	   }


   Dass es mit virtuellen Funktionen nicht tut ist mir klar, dass es bei nicht
   virtuellen Funktionen tut ist mir genauso klar. Die Frage ist, kann ich da
   in irgendwas reinlaufen, weil das Verhalten evtl. undefiniert ist bei
   anderen/zukuenftigen Compilern?

Das wird u.a. im ARM (9.3 "Member Functions"/p176) als ungueltig erklaert.
Man kann diese Technik damit zwar noch als zusaetzlichen Test im Programm
verwenden, kommt aber um die Abfrage _vor_ dem Aufruf nicht herum.

	Enno
Technical Details
Message-ID: <ENNO.96Jan28144057@kitz.inferenzsysteme.informatik.th-darmstadt.de>
Path: arc1-ca.pugleaf.net!news.th-darmstadt.de!news!enno
References: <0YZ8BLIJ@wuschel.ibb.schwaben.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.th-darmstadt.de!news!enno
From: enno@inferenzsysteme.informatik.th-darmstadt.de (Enno Sandner)
Newsgroups: de.comp.lang.c++
Subject: Re: Kann this Pointer NULL sein?
Date: 28 Jan 1996 13:40:56 GMT
Organization: Fachbereich Informatik, TH Darmstadt
Distribution: world
Message-ID: <ENNO.96Jan28144057@kitz.inferenzsysteme.informatik.th-darmstadt.de>
References: <0YZ8BLIJ@wuschel.ibb.schwaben.com>
NNTP-Posting-Host: kitz.intellektik.informatik.th-darmstadt.de
In-reply-to: uz@wuschel.ibb.schwaben.com's message of 28 Jan 1996 10:56:41 GMT