Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 19:43

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

Advertisement



[Code Snippet] Save / Load Lists

Discussion on [Code Snippet] Save / Load Lists within the C/C++ forum part of the Coders Den category.

Reply
 
Old 03/31/2012, 00:03   #16


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Jau, klar. Das sind ja auch nur Richlinien.
Richtlinien implizieren aber eine Art Standard. Es gibt zwar ein paar sehr verbreitete Konventionen, aber keine als einzig richtige anerkannte.

Quote:
listX wird in der Funktion LoadList nicht genutzt -> der Parameter ist unnötig.
Achso, hab ich gar nicht gemerkt.

Quote:
Höre ich zum ersten mal und es würde mich wundern, wenn das der Fall wäre.
Doch das bringt mich auf einen anderen Gedanken - der move ctor. Sollte std::list einen solchen haben, dann ist return by value schneller!
Das schaue ich mir später mal an, wenn ich daran denke.
Zumindest die String Klasse ist so aufgebaut, wenn ich mich recht erinner. std::vector nicht, aber wie es mit list und ähnlichen zeigerbasierten Containern aussieht, weiß ich nicht.

Move ctor? oO

Quote:
So spontan kenne ich niemanden, der Variablennamen groß schreibt. Dass globale Variablen (welche man vermeiden soll) g und Klassenmember m als Präfix erhalten ist hingegen durchaus gang und gebe.
An das Kleinschreiben von (öffentlichen) Methoden halte ich mich hingegen wieder nicht, das schaut für mich falsch aus. Private Methoden schreibe ich klein und öffentliche groß.
Wie du schon sagtest, Geschmackssache.
Wie gesagt, hat auch ein bisschen was mit der Bedeutung zu tun. Ich kenne auch keinen, der int I schreibt, aber wenn es um wichtige Variablen geht, die eventuell sogar längere Namen haben, sind klein geschriebene Namen nicht sehr leserlich.

Dass man globale Variablen vermeiden sollte, ist mir klar, dennoch ist es nicht immer möglich, zumal sie dann wenigstens als solche gut kenntlich gemacht werden sollten.
Aber da persönlich fände ich etwas wie
Code:
const int g_varyimportantconstant
ziemlich unschön, selbst, wenn man nach dem ersten Teilwort mit CamelCase oder Unterstrichen beginnt.

Die Konvention mit den Methodennamen ist für C und C++ Programmierer ziemlich ungewohnt, sie kommt aus dem Hardcore OOP Bereich wie Java, da fängt jede Methode klein an. Mir fällt gerade sogar ein, dass in der STL eigentlich sogar alle Methoden komplett klein sind.

Und jo, is Geschmackssache, solange man seinen eigenen Stil konsequent einhält.

Übrigens, deine angesprochene Misere ist selbst kein Designfehler, sondern Folge eines anderen Umstandes, den man möglicherweise als Designfehler ansehen könnte. Ist aber Ansichtssache, da mir beide Möglichkeiten logisch erscheinen:

In C++ liest man streng genommen von rechts nach links:

Code:
int x; //x ist ein int
const int x;
//streng genommen wäre es folgende reihenfolge:
int const x; //X ist ein konstanter int
int *x; //x ist ein zeiger auf int
int const *x; //x ist ein zeiger auf einen konstanten int
int const * const x; //x ist ein konstanter zeiger auf einen konstanten int
In einigen anderen Sprachen, die mehr an Sprache angelehnt sind (zb. Delphi) werden ja auch erst die Namen angegeben und dann die Datentypen. Aussprachetechnisch ist es in C++ das Gleiche, nur geschrieben wird es umgekehrt, vielleicht, um sofort die Datentypen zu sehen und dann die Namen der Variablen.
MrSm!th is offline  
Old 03/31/2012, 16:40   #17
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184

Boost bietet für alle STD Container Möglichkeiten diese zu serialisieren, auch nicht POD Typen/Klassen lassen sich mit dieser Bibliothek serialisieren.
Bot_interesierter is offline  
Old 03/31/2012, 19:09   #18
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Quote:
Originally Posted by MrSm!th View Post
Richtlinien implizieren aber eine Art Standard. Es gibt zwar ein paar sehr verbreitete Konventionen, aber keine als einzig richtige anerkannte.
Versteh mich bitte nicht falsch, aber ich habe nicht wirklich Lust über Konventionen zu diskutieren.


Quote:
Zumindest die String Klasse ist so aufgebaut, wenn ich mich recht erinner. std::vector nicht, aber wie es mit list und ähnlichen zeigerbasierten Containern aussieht, weiß ich nicht.
Wie gesagt, höre ich zum ersten mal. Und dass das scheinbar nur bei Strings funktioniert klingt das für mich nach einer compile-time Optimierung, wenn du sowas machst:
Code:
std::string foo = "foo";
auto bar = foo;
Ich werd nacher mal schauen was der Standard dazu sagt.

Quote:
Move ctor? oO
Jup. Am Besten danach googeln, falls du nicht weißt was das ist. Das zu erklären würde den Rahmen ein wenig sprengen. ^^

std::list hat tatsächlich einen (jeder std container hat ihn)! Sprich, return by value wäre tatsächlich die bessere Wahl!
Hehe, mit C++11 muss man richtig umdenken!

Quote:
Übrigens, deine angesprochene Misere ist selbst kein Designfehler, sondern Folge eines anderen Umstandes, den man möglicherweise als Designfehler ansehen könnte. Ist aber Ansichtssache, da mir beide Möglichkeiten logisch erscheinen:

In C++ liest man streng genommen von rechts nach links:

Code:
int x; //x ist ein int
const int x;
//streng genommen wäre es folgende reihenfolge:
int const x; //X ist ein konstanter int
int *x; //x ist ein zeiger auf int
int const *x; //x ist ein zeiger auf einen konstanten int
int const * const x; //x ist ein konstanter zeiger auf einen konstanten int
In einigen anderen Sprachen, die mehr an Sprache angelehnt sind (zb. Delphi) werden ja auch erst die Namen angegeben und dann die Datentypen. Aussprachetechnisch ist es in C++ das Gleiche, nur geschrieben wird es umgekehrt, vielleicht, um sofort die Datentypen zu sehen und dann die Namen der Variablen.
So gesehen stimmt das, aber auch das Thema will ich zumindest hier nicht all zu sehr vertiefen.
Nightblizard is offline  
Old 03/31/2012, 19:55   #19


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Versteh mich bitte nicht falsch, aber ich habe nicht wirklich Lust über Konventionen zu diskutieren.
Das geht auch nicht, weil es Geschmackssache ist. Ich habe das lediglich gesagt, weil ich nicht wollte, dass Leute, die deinen Post lesen, denken, das was du schreibst wäre allgemeingültig und richtig. Denn Konventionen sind Geschmackssache und nur weil du es leserlicher findest, sieht das nicht jeder so. Das wollte ich lediglich klarstellen, weil es bei dir so rüberkam, als müsste der TE deinen Code nun ändern, weil er macht es ja falsch; wollte keine Diskussion darüber anfangen.

Quote:
Wie gesagt, höre ich zum ersten mal. Und dass das scheinbar nur bei Strings funktioniert klingt das für mich nach einer compile-time Optimierung, wenn du sowas machst:
Nein, das meinte ich nicht. Ich wollte damit sagen, dass die Klasse dahingehend designed wurde. Kann auch sein, dass ich mich da irre, aber etwas ähnliches habe ich in seinem Buch gelesen, als er Strings abgehandelt hat.

Quote:
std::list hat tatsächlich einen (jeder std container hat ihn)! Sprich, return by value wäre tatsächlich die bessere Wahl!
Hehe, mit C++11 muss man richtig umdenken!
Das kam mit C++11? Dann kann man sich nicht zwingend drauf verlassen, nicht jeder Compiler unterstützt den schon.
MrSm!th is offline  
Reply


Similar Threads Similar Threads
EP4 Mob Code Lists
04/24/2014 - Shaiya Private Server - 7 Replies
Ok I have been all over here looking for a EP4 mob code list having no luc. If anyone has one or can point me in the right direction would be great. Thanks
[Code Snippet] getFloatFromString [C++
02/15/2012 - C/C++ - 5 Replies
I wrote a small function for getting a float from a string. I know that this function isn't perfect. It isnt very hard to fix it ;) I belive in you guys :P using namespace std; float getFloatFromString (char *szBuffer);
5165 Save or Load Character Problem.
07/29/2010 - CO2 Private Server - 5 Replies
alright so IDK wtf I did 2 dis source dat now wen I login and log out my character doesnt save sumhow and like his/her gears are all fucked up wen u login again like...a necklace is where da armor should be at lol...and da armor is like da weapon...so on...only like 3 things save... well I'm hoping I can get answers from dis...I'll post my SaveCharacter/LoadCharacter void here... public static Game.Character LoadCharacter(string Name, ref string Account) { try ...
[Code Snippet]Facing Character to X , Y
10/27/2009 - Aion Hacks, Bots, Cheats & Exploits - 4 Replies
Hey community, i want to share some code snippets to you because NCsoft changed a little bit in Aion and now i want to share a new Facting to X Y method. ;) Thanks to PharmerPhale for some help. :) C# Code private double RotNeeded(float X, float Y) {



All times are GMT +1. The time now is 19:44.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.