Article View: de.comp.lang.c++
Article #1797Ein paar Fragen
From: Ruediger Berlich
Date: Sun, 10 Mar 1996 14:32
Date: Sun, 10 Mar 1996 14:32
64 lines
2506 bytes
2506 bytes
Hallo,
ich habe ein paar Fragen :
- Ist es durchweg ratsam, alle Z"ahl-Variablen als
'register' zu deklarieren ? Oder sollte man sich da nur auf die
wichtigsten (am h"aufigsten gebrauchten) beschr"anken ?
Ich stelle mir vor, dass ja immer nur eine beschr"ankte Anzahl von
Variablen die Register des Prozessors belegen kann. Bremst man so nicht
das ganze Programm aus ? Oder ist 'register' nur eine Empfehlung an
den Compiler ?
- Mir wurde erz"ahlt, dass auf modernen (>= 32 Bit-) Rechnern intern alle
floatingpoint-Zahlen als double dargestellt sind, sodass Programme,
die nur mit double arbeiten, schneller sind, da floats intern umgewandelt
werden m"ussen. Stimmt das und gilt dasselbe dann auch f"ur int/long ?
- Wenn ich etwa die folgenden (Member-)Funktionen/Klassen deklariere/definiere :
(schwachsinnig, ich weiss, soll nur ein Beispiel sein)
===============================================
class matrix
{
public:
matrix(long, long);
matrix(const matrix&);
...
matrix& giveBackMatrix(void);
matrix& operator=(const matrix&);
matrix& operator=(double); // Soll Matrix mit dem Argument initialisieren
private:
...
};
matrix& matrix::giveBackMatrix(void)
{
matrix z(*this);
return z;
}
main()
{
matrix x(3,3),y(3,3);
x=1.;
y=0.;
...
y=x.giveBackMatrix();
}
=============================================
w"are dann sichergestellt, dass 'z' als lokale Variable lange genug
lebt, um operator= auszuf"uhren ? W"urden dann in y also lauter
'1.' stehen ? Oder w"are das Ganze undefiniert ?
Anders ausgedr"uckt, wie kann ich bei der R"uckgabe einer Referenz
vermeiden, den R"uckgabewert (z) mit 'new' anlegen zu m"ussen
(==> explizites L"oschen notwendig) ?
Danke f"ur Eure Hilfe,
R"udiger
[berlich@pc66.mppmu.mpg.de]
P.S. : Sorry, ich poste diesen Artikel nicht von meinem normalen Host
(in M"unchen). Es k"onnte deshalb sein, dass die im Header des Artikels
angegebene Adresse nicht stimmt (Erscheint hier im 'vi' vom 'tin' aus
nicht). Ich bin jedoch unter der oben angegebenen Adresse -- pc66 --
zu erreichen.
Technical Details
Message-ID:
<Do2325.Fwu@news.cern.ch>Path:
arc1-ca.pugleaf.net!afal23.cern.ch!berlichrShow Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++ Path: arc1-ca.pugleaf.net!afal23.cern.ch!berlichr From: berlichr@afal23.cern.ch (Ruediger Berlich) Subject: Ein paar Fragen X-Nntp-Posting-Host: afal23.cern.ch Message-ID: <Do2325.Fwu@news.cern.ch> Sender: news@news.cern.ch (USENET News System) Organization: CERN European Lab for Particle Physics X-Newsreader: TIN [version 1.2 PL2] Date: Sun, 10 Mar 1996 14:32:29 GMT