Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 10:47

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



bool || void

Discussion on bool || void within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #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;
}
};
iTrodan is offline  
Old 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?
Actidnoide is offline  
Old 05/30/2014, 22:31   #3
 
elite*gold: 0
Join Date: May 2014
Posts: 18
Received Thanks: 0
Quote:
Originally Posted by Actidnoide View Post
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)
iTrodan is offline  
Old 05/30/2014, 22:35   #4
 
XxharCs's Avatar
 
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?
XxharCs is offline  
Old 05/30/2014, 23:03   #5
 
elite*gold: 0
Join Date: May 2014
Posts: 18
Received Thanks: 0
Quote:
Originally Posted by XxharCs View Post
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.
iTrodan is offline  
Old 05/31/2014, 09:23   #6
 
LcPlayer1's Avatar
 
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;
};
LcPlayer1 is offline  
Old 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 View Post
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.
Mostey is offline  
Old 05/31/2014, 18:30   #8


 
MrSm!th's Avatar
 
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.
MrSm!th is offline  
Old 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.
iTrodan is offline  
Old 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 View Post
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 View Post
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 View Post
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.
Mostey is offline  
Old 05/31/2014, 20:53   #11
 
elite*gold: 0
Join Date: May 2014
Posts: 18
Received Thanks: 0
Was sind Exceptions?
iTrodan is offline  
Old 05/31/2014, 21:58   #12
 
Padmak's Avatar
 
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
Padmak is offline  
Old 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.
iTrodan is offline  
Old 05/31/2014, 22:38   #14
 
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
Quote:
Originally Posted by iTrodan View Post
[...] 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 View Post
Naja dann google ich erstmal ein bisschen bevor ich die Fragen online stelle.
Unbedingt.
Tasiro is offline  
Thanks
2 Users
Old 05/31/2014, 23:07   #15
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Quote:
Originally Posted by MrSm!th View Post
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.
Nightblizard is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.