|
You last visited: Today at 10:47
Advertisement
bool || void
Discussion on bool || void within the C/C++ forum part of the Coders Den category.
05/30/2014, 22:10
|
#1
|
elite*gold: 0
Join Date: May 2014
Posts: 18
Received Thanks: 0
|
bool || void
Sollte ich hierfür bool oder void benutzen
Code:
1.
class Kap
{
public:
short zahl;
bool setZahl(short zahl){
this->zahl = zahl;
return true;
}
};
2.
class Kap
{
public:
short zahl;
void setZahl(short zahl){
this->zahl = zahl;
}
};
|
|
|
05/30/2014, 22:19
|
#2
|
elite*gold: 1391
Join Date: Apr 2014
Posts: 77
Received Thanks: 14
|
Die Methode setzt nur ein Attribut. Da gibt es keine Ausnahme oder Sonstiges, wozu also ein Rueckgabewert?
|
|
|
05/30/2014, 22:31
|
#3
|
elite*gold: 0
Join Date: May 2014
Posts: 18
Received Thanks: 0
|
Quote:
Originally Posted by Actidnoide
Die Methode setzt nur ein Attribut. Da gibt es keine Ausnahme oder Sonstiges, wozu also ein Rueckgabewert?
|
In meinem Buch wird oft bool statt void verwendet und ich weiß nicht wieso (die Funktion hat keinen Rückgabe Wert)
|
|
|
05/30/2014, 22:35
|
#4
|
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
|
setter - Methoden brauchen keinen Rückgabewert, getter widderum schon.
Normalerweise verwendet man setter/getter bei privat deklarierten Variablen.
Was für ein Buch verwendest du, dass da setter - Methoden, Rückgabewerte (bool in deinem Fall) haben/verwenden?
|
|
|
05/30/2014, 23:03
|
#5
|
elite*gold: 0
Join Date: May 2014
Posts: 18
Received Thanks: 0
|
Quote:
Originally Posted by XxharCs
setter - Methoden brauchen keinen Rückgabewert, getter widderum schon.
Normalerweise verwendet man setter/getter bei privat deklarierten Variablen.
|
Ich weiß schon bescheid, dieser Code diente nur als Beispiel (mir fiel nichts besseres ein).
Quote:
|
Was für ein Buch verwendest du, dass da setter - Methoden, Rückgabewerte (bool in deinem Fall) haben/verwenden?
|
C++ Lernen und professionell anwenden verwende ich.
Ich habe mich nun dazu entschieden, bei 0 anzufangen und jede Seite gründlich
durchzulesen, mir ist nämlich klar geworden, dass ich die Seiten zum größten Teil überflogen habe.
|
|
|
05/31/2014, 09:23
|
#6
|
elite*gold: 1765
Join Date: Aug 2011
Posts: 2,538
Received Thanks: 400
|
Du kannst einen boolean verwenden, um Fehlschläge zu erkennen und zu verarbeiten, also als Alternative/Erweiterung zu Exceptions. Ob das notwendig/sinnvoll ist, ist situationsabhängig. Z.B. beim Verbindungsaufbau zu einer Datenbank kannst du so überprüfen, ob es geklappt hat. Bei einer einfachen Setter-Methode wie in deinem Beispiel ist es eher unnötig.
Beispiel (Pseudocode):
Code:
bool connectToDB(...){ ... }
void createTable(...){ ... }
int main()
{
if(connectToDB(...))
{ createTable(...); }
return 0;
};
|
|
|
05/31/2014, 10:21
|
#7
|
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
|
Quote:
Originally Posted by LcPlayer1
Du kannst einen boolean verwenden, um Fehlschläge zu erkennen und zu verarbeiten, also als Alternative/Erweiterung zu Exceptions. Ob das notwendig/sinnvoll ist, ist situationsabhängig. Z.B. beim Verbindungsaufbau zu einer Datenbank kannst du so überprüfen, ob es geklappt hat. Bei einer einfachen Setter-Methode wie in deinem Beispiel ist es eher unnötig.
|
Wenn eine Verbindung zur Datenbank fehlschlägt, kann das mehrere Ursachen haben und es können dementsprechend mehrere Exceptions fliegen. Daher reicht hier ein boolean meiner Meinung nach nicht mehr. Ich wüsste auch nicht, an welchen Stellen die Verwendung von booleans als Fehlererkennung den Exceptions vorzuziehen ist.
|
|
|
05/31/2014, 18:30
|
#8
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,908
Received Thanks: 25,408
|
An den Stellen, an denen ein einfaches True/False reicht und die Performance-Einbußen durch Exceptions nicht gerechtfertigt sind.
Außerdem gibt es boolsche Indikatoren gerne in Verbindung mit einer Art LastError Variable, von daher bedeutet ein Bool nicht gleich, dass keine weiteren Informationen möglich sind.
|
|
|
05/31/2014, 19:33
|
#9
|
elite*gold: 0
Join Date: May 2014
Posts: 18
Received Thanks: 0
|
Ich verstehe nicht genau was diese Fachbegriffe zu bedeuten haben, ich denke aber dass sich dieses schon sehr bald ändern wird.
|
|
|
05/31/2014, 19:53
|
#10
|
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
|
Quote:
Originally Posted by MrSm!th
An den Stellen, an denen ein einfaches True/False reicht und die Performance-Einbußen durch Exceptions nicht gerechtfertigt sind.
|
Zum Beispiel? Fehlermeldungen sicherlich nicht.
Quote:
Originally Posted by MrSm!th
Außerdem gibt es boolsche Indikatoren gerne in Verbindung mit einer Art LastError Variable, von daher bedeutet ein Bool nicht gleich, dass keine weiteren Informationen möglich sind.
|
Wenn du das so siehst, gibt es noch viele andere Indikatoren um Fehler festzustellen. Eine LastError Variable ist sowas von unnötig und ineffizient, wenn man Exceptions nutzen kann aber das brauche ich dir ja nicht erklären.
€: Weil mich snowi nervt: Ich spreche nicht von Performance.
Quote:
Originally Posted by iTrodan
Ich verstehe nicht genau was diese Fachbegriffe zu bedeuten haben, ich denke aber dass sich dieses schon sehr bald ändern wird.
|
Du kannst gerne fragen wenn du etwas nicht verstehst, dafür ist das Forum ja da.
|
|
|
05/31/2014, 20:53
|
#11
|
elite*gold: 0
Join Date: May 2014
Posts: 18
Received Thanks: 0
|
Was sind Exceptions?
|
|
|
05/31/2014, 21:58
|
#12
|
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
|
Bitte, das lässt sich durch eine einfache Google-Suche herausfinden.
SOLCHE Fragen musst du hier nicht stellen..
Padmak
|
|
|
05/31/2014, 22:20
|
#13
|
elite*gold: 0
Join Date: May 2014
Posts: 18
Received Thanks: 0
|
Mostey meinte ich könne die Fragen auch hier stellen und da ich das Internet nicht 100%ig vertraue wollte ich die Frage hier stellen. Naja dann google ich erstmal ein bisschen bevor ich die Fragen online stelle.
|
|
|
05/31/2014, 22:38
|
#14
|
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
|
Quote:
Originally Posted by iTrodan
[...] da ich das Internet nicht 100%ig vertraue wollte ich die Frage hier stellen.
|
Dieses Forum befindet sich im Internet. (Es würde mich nicht wundern, wenn dein Beitrag bald in einer Signatur zu finden ist.)
Quote:
Originally Posted by iTrodan
Naja dann google ich erstmal ein bisschen bevor ich die Fragen online stelle.
|
Unbedingt.
|
|
|
05/31/2014, 23:07
|
#15
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
Quote:
Originally Posted by MrSm!th
Performance-Einbußen durch Exceptions
|
Das ist Unsinn und in der Praxis ist oft sogar das genaue Gegenteil der Fall!
Ich habe da mal ein kleines Beispielprogramm geschrieben:
Im Release Modus mit Visual Studio 2013 compiliert bekomme ich folgendes Ergebnis:
Quote:
with exceptions: 47.8477 seconds
without exceptions: 47.8797 seconds
|
Wer sich nun fragt warum die "Performancefresser" schneller sind: die Antwort darauf ist relativ simpel.
Durch all die ifs in dem Code, die du einfügen musst um sicher zu gehen, dass nirgens eine Funktion fehlgeschlagen ist, fressen wesentlich mehr Performance als ein einzelnes throw das jemals könnte!
Zusätzlich dazu blähen dir die ifs den Code dermaßen stark auf, dass du weit mehr als das doppelte an Code schreiben musst, um ein ansatzweise gleichwertiges Ergebnis zu bekommen. Das führt dann dazu, dass dein Code nicht nur schwerer zu warten und zu lesen wird, er wird auch gleich sehr viel fehleranfälliger!
Dass Exceptions dein Programm langsamer machen ist alter Aberglaube der C Fanatiker und - vorausgesetzt man macht es richtig - in der Praxis sind sie meistens sogar schneller, weil sie extrem viel overhead aus dem Code raus nehmen.
Und selbst wenn sie langsamer sein sollten, alleine schon druch den Gewinn an Lesbarkeit in deinem Code sollte man immer zuerst auf sie zurückgreifen, denn Performance ist erst dann ein Argument, wenn du mit einem Profiler dein Programm überprüfst und dann als Ergebnis diese eine throw Anweisung aufgeführt wird.
|
|
|
 |
|
Similar Threads
|
Void kal cheats
04/22/2014 - Kal Hacks, Bots, Cheats & Exploits - 11 Replies
Like title says ;)
Kalulz need to be started after kalonline is opened same like the splashy.dll
Just inject it with CE 6.3 choose engine.exe press CTRL+M then CTRL+I and inject dll
Goodluck
|
[C#] delegate bool functions
12/29/2012 - .NET Languages - 3 Replies
Moin moin,
Nach langer zeit melde ich mich dann mal von den toten zurück :)
Ich habe ein kleines Problem, und zwar möchte ich eine bestimmte Funktion die Bsp. Einen zauber startet überladen.
Public static void Cast(string spellname)
{
Casting(spellname)
}
|
Eigenes Fenster außerhalb von BOOL InitInstance()
04/21/2012 - C/C++ - 4 Replies
Mein Problem liegt darin, dass ich 2 Fenster haben möchte, das eine sich jedoch nur öffnen soll wenn ich beispielsweise einen Button gedrückt habe.
Also habe ich eine zweite Klasse gemacht etc. So, wenn ich nun das Fenster
erstellen lasse, wo das erste auch erstellt wird( in BOOL InitInstance() ), funktioniert alles wunderbar d.h. sie öffnen sich beide gleichzeitig, aber das möchte ich ja nicht.
Trage ich dann die Funktion CreateWindow() dahinein (außerhalb von BOOL InitInstance() ), dass...
|
Void Problem
12/15/2011 - CO2 Private Server - 5 Replies
Problem has been Fixed
|
I void I
04/23/2011 - Runescape Trading - 3 Replies
Grr
|
All times are GMT +1. The time now is 10:48.
|
|