C++ Blogbuch
-
Hallo Community,
Einige die sich mit Java beschäftigen sind bestimmt bereits schon ein mal auf das Java Blogbuch gestoßen. Leider gibt es ein Solches Projekt nich für C++. Darum habe
ich mich Kurtzerhand entschlossen und eine Domain bestellt und diese auf meinem Webspace aufgeschaltet. Leider ist mir bewusst, dass ich dieses Projekt nicht alleine Stemmen kann,
deswegen suche ich nun gleichgesinnte, die auch Interesse an diesen Projekten haben und als Autor mitwirken möchten. Dabei ist jeder eingeladen, Tutorials und oder Kapitel zu erstellen.Das Projekt verfolgt keinen Kommerziellen Hintergrund, es wird auch keine Werbung auf dem Blog ausgestrallt werden. Das Projekt soll einsteiger und auch umsteigern wie auch Anwendern eine Hilfestellung zu den Verschiedenen Themen bieten.
Wer nun Interesse hat, bei dem Projekt mit zu wirken, der kann sich gerne auf http://www.cpp-blogbuch.de Registrieren oder sich einfach hier in dem Thema melden.Grüße Andy
-
Sieht doch nett aus. Vielleicht kann ein Mod das mal ins RudP verschieben.
Habe mich auch gerade registriert.
Diese Nachricht ist mir übrigens direkt gekommen:
WordPress 3.9.1 ist verfügbar! Bitte benachrichtige den Administrator.
-
Danke sehr werde deinen Account natürlich gleich erweitern. Ich werde gleich das Update durchführen. Was ist aber RudP ?
Grüße
Andy
-
-
Oh danke, wusste leider nicht in welches Forum ich das Thema am besten veröffentlichen sollte. Ich habe nun mal mit dem "Inhaltsverzeichnis" weiter gemacht, dieses solltest du unter Kategorien finden. Vielleicht fallen dir ja noch Themen Bereiche ein.
Grüße Andy
-
Prinzipiell nette Idee, aber etwas Kritik muss ich doch vorbringen:
Wenn ich in einem Tutorial auf Rechtschreib- und Grammatikfehler stoße, dann beginne ich unterbewusst, an der Kompetenz des Autors zu zweifeln.
Also wenn man sich schon die Zeit nimmt, ein Tutorial zu verfassen, dann sollte man es zumindest noch einmal Korrektur lesen (lassen).Davon abgesehen grenzt dieser Artikel stark an das Niveau von Jürgen Wolf.
Ich bezweifle, dass ein Anfänger (für den dieses Snippet offenbar gedacht ist), von selbst darauf kommt, dass er auf das erste Element des Rückgabevektors delete[] aufrufen muss, um keine Speicherlecks zu erhalten.
Ebenso würde die Funktion, aufgerufen auf einen leeren String, einen leeren Vektor zurückgeben, wodurch der 1 Byte große Puffer ein definitives Speicherleck ist.Auch hier wird dynamisch ein Array angelegt, aber nirgendwo erwähnt, dass man dieses per delete[] freigeben muss/sollte.
Generell sollte weniger auf rohe Zeiger gesetzt werden. Ein paar Schlüsselwörter sind hier:
std::string, std::vector, std::unique_ptr, std::shared_ptr, std::unordered_map
Gibt noch mehr, aber damit kann man schon eine ganze Menge ohne manuelle Speicherverwaltung machen.Das hier erinnert mich sehr stark an Java und ist in C++ eher unüblich. Für gewöhnlich wird die Art und Weise wie man mit Ereignissen umgeht von den verschiedenen Bibliotheken vorgegeben die man nutzt.
(z.B. Qt Signals/Slots, boost::signal, C-Style Callbacks -> Windows API, Funktoren -> STL Algorithmen)Über Postfixinkrement kann man sich auch streiten, aber ich bin der Meinung, dass es nicht schadet, sich pauschal Präfixinkrement anzugewöhnen.
Im besten Fall ist es effizienter und im schlechtesten Fall genau so effizient wie die Postfixvariante.Auch interessant fand ich diese Kombination:
#include <stdlib.h> #include <cstring>
"cstring" ist ja soweit nicht verkehrt, aber warum "stdlib.h"? Der Header heißt in C++ "cstdlib". Die Header mit .h-Endung sind nur deshalb vorhanden, weil die gängigsten C++-Compiler eben auch einen C-Compiler mit sich bringen und der eben die C-Header haben muss.
Wie gesagt, nette Idee, aber an der Umsetzung muss noch gearbeitet werden.
-
DrakoXP schrieb:
Davon abgesehen grenzt dieser Artikel stark an das Niveau von Jürgen Wolf.
Da stimme ich voll und ganz zu.
Richtig wäre diese Funktion
#include <string> #include <vector> std::vector<std::string> split( std::string const& value, std::string const& splitter ) { std::vector<std::string> rval; // Falls der String leer ist, leeren Container zurückgeben if( value.empty() ) return rval; std::string::size_type pos = 0; for (;;) { auto next_pos = value.find(splitter, pos); if (next_pos == std::string::npos) { rval.push_back( value.substr(pos) ); break; } rval.push_back( value.substr(pos, next_pos - pos) ); pos = next_pos + splitter.length(); } return rval; } #include <iostream> int main() { for( auto const& s : split("Das, ist, ein, Satz, mit, vielen, Kommas", ", ") ) std::cout << s << '\n'; }
Geht auch noch generischer - nicht in dem Sinne dass beliebige Spezialisierungen von
basic_string
übergeben werden können, sondern dass man allgemein Ranges stattstring
odervector
verwenden könnte, oder gar Iteratoren, was aber sicherlich irgendwo auf die Performance geht.
-
Hallo, danke sehr. Leider konnte ich die Letzten Wochen nicht am Projekt arbeiten da ich eine Sehnen Scheiden Entündung im Linken Arm hatte.