Sind die Artikel für C + +-Speicher MANAGEMENT lesen

Nach der Lektüre " C + + Memory Management: From Fear to Triumph "-Serie, ich glaube, Sie sollten die Artikel für die Speicherverwaltung zu lesen. Ich frage mich, was soll Artikel zu lesen sich nicht entgehen lassen.

Vielen Dank!


Benutzer St3fan antwortete:

Obwohl es nicht wirklich ein Artikel, ich glaube, die steigen smart_ptr Bibliothek Dokumentation hat gute Informationen über Memory-Management-C + +. Natürlich ist es in der Bibliothek der Bewehrung voreingenommen, aber ich denke, es wird einige gute Ideen daraus zu ziehen.


Benutzer Jagannath sagte:

Herb Sutter Behandlung auf Speicher-Management in seinem Buch "Außergewöhnlich C + +" und "C + + mehr außergewöhnlich."


Benutzer mloskot antwortete:

Lesen und lernen Sie auch auf RAII Sprache, ist Resource Acquisition Initialisierung der Artikel und die folgenden beiden:


Benutzer BitShift antwortete:

Einige Grundlagen:

Speicher als Programmier-Konzept in C und C + +

Frantisek Franek

Cambridge University Press

ISBN 0-521-52043-6


Benutzer Poluektov Alexander sagte:

Andrei Alexandrescu etwas zu sagen hat in seinerModern C + + Design Book. Interessierte wahrscheinlich

  • Kapitel 4. Kleine Objektzuordnung
  • Kapitel 7. Smart-Pointers

Obwohl der praktische Wert der Techniken der Andrei umstritten, lernen ohne Zweifel einige neue und interessante Dinge in diesem Buch.


Dieser Text stammen aus der ursprünglichen Quelle in Stackoverflow.com



Related Posts

trunc () JavaScript - 2012-05-17 14:00

Ich möchte eine Zahl in Javascript truncate

 trunc(2.6)==2 

Benutzer Daniel Vassallo sagte:

Für positive Zahlen:

 Math.floor(2.6) == 2; 

Für negative Zahlen:

 Math.ceil(-2.6) == -2; 

Benutzer CMS reagiert:

Als Ergänzung zu Daniel @ s Antwort, "wenn man immer abschneiden gegen Null möchten, können Sie:

 function truncate(n) { return n | 0; // bitwise operators convert operands to 32-bit integers } 

Oder:

 function truncate(n) { return Math[n > 0 ? "floor" : "ceil"](n); } 

Beide geben angemessene Ergebnisse sowohl für positive und negative Zahlen:

 truncate(-3.25) == -3; truncate(3.25) == 3; 

BenutzerBazalik Marian sagte:

Was

 function truncate(n) { Math.round(n - 0.5); } 

Dieser Text stammen aus der ursprünglichen Quelle in Stackoverflow.com


Wie, mit jQuery, könnte ich das src-Attribut eines HTML-img-Element? - 2012-05-17 14:00

Wenn Sie den Mauszeiger über ein Bild bewegen, würde Ich mag an eine Anzeige alert() mit dem Wert des Bildes src -Attribut. Wie würde ich mich über die Erfüllung dieser gehen?


Benutzer Relkin Jacob antwortete:

JavaScript:

 function alertSource( image ) { alert( image.src ); } 

HTML:

 <img src="path/to/image" onmouseover="alertSource(this);" alt=""/> 

Sie brauchen nicht jQuery für diese.


Benutzer E-Zeichen , antwortete:

Sie können das mouseover -Ereignis.

Wenn Sie

 <img src='foo.jpg' id='bar'> 

Sie können Code wie jQuery

 $('#bar').mouseover(function(){ alert($(this).attr('src')); }); 

(Wenn auch dies nicht kann man versuchen, ersetzt $(this) mit$ ('# Bar "), aber wie in den Kommentaren angemerkt ist ziemlich hässlich)

Edit: verpasste die Notwendigkeit, das src-Attribut erstmals durchscheinen ..


Benutzer Caleb sagte:

 <img src="some_img.gif"> <script> $("img").bind("mouseover",function(){ alert($(this).attr("src")); }); </script> 

Benutzer David antwortete:

 $('img').mouseover(function() { alert( this.src ); }); 

Dieser Text stammen aus der ursprünglichen Quelle in Stackoverflow.com


error_class Formen django - 2012-05-17 14:00

Gibt es eine Möglichkeit, um eine besondere Form eines Fehlers in der Darstellung gemäß der Definition der Form zu geben? In der Dokumentation unter die Personalisierung von-Error-Liste Format zeigt, wie man eine spezielle Form der Fehler-Funktion der Repräsentation zu geben, aber es scheint, zu erklären, wenn eine Instanz der Form, nicht, wenn sein definieren.

So können Sie eine Klasse ErrorList wie folgt definieren:

 from django.forms.util import ErrorList class DivErrorList(ErrorList): def __unicode__(self): return self.as_divs() def as_divs(self): if not self: return u'' return u'<div class="errorlist">%s</div>' % ''.join([u'<div class="error">%s</div>' % e for e in self]) 

Und dann, wenn Sie instanziieren Ihre Form kann eine Instanz mit, dass error_class zu erstellen:

  f = ContactForm(data, auto_id=False, error_class=DivErrorList) f.as_p() <div class="errorlist"><div class="error">This field is required.</div></div> <p> Subject: <input type="text" name="subject" maxlength="100" /> </ p> Message: <input type = "text" name = "message" value = "Hallo" / > </ p> <div class="error"> <div class="errorlist"> geben Sie eine gültige E-Mail. </ Div> </ div> <p Sender: name = "Absender" Adresse "value =" ungültige E-Mail <input type="text" /> </ p> I Cc: input <= "checked" überprüfen type = "checkbox" name = "cc_myself" /> </ p> 

Aber ich will nicht den Namen der Fehler jedes Mal eine Instanz einer Form, es gibt nur einen Weg um eigene Fehler Prozessor unter die Definition der Form zu definieren?


Benutzer Daniel sagte:

Versuchen Sie Folgendes:

 class MyForm(forms.Form): ... def __init__(self, *args, **kwargs): super(MyForm, self).__init__(*args, **kwargs) self.error_class = DivErrorList 

Sollte funktionieren. Aber habe ich nicht getestet.


Benutzer Clement antwortete:

Wenn Sie wollen, ist dieses Verhalten in allen Formen, kann eine eigene Klasse als Basis wie folgt definiert:

 class MyBaseForm(forms.Form): def __init__ (args * I, ** kwargs): kwargs_new = {'error_class: DivErrorList}. kwargs_new.update (kwargs) super (MyBaseForm, andere) __init__ (* args ich kwargs_new **) 

Und dann haben alle Unterklassen, so dass eine. Dann wird das Formular DivErrorList als Prozessor-Fehler standardmäßig, und Sie werden noch in der Lage sein, um die Änderung error_class Argument.

Hinweis: Sie müssen das gleiche tun mit ModelForm


Dieser Text stammen aus der ursprünglichen Quelle in Stackoverflow.com


Wie 'Username-Passwort "wird zu" E-Mail-Login-Passwort "in django-registration - 2012-05-17 14:00

Ich möchte ein Beispiel. Dank


Sie Will Hardy antwortete:

Man kann nicht einfach speichern E-Mails django.contrib.auth.model.User s Feld für den Benutzernamen ", so benötigen Sie eine andere Authentifizierungs-Backend. Platzieren Sie den folgenden irgendwo, und fügen Sie den Pfad zu AUTHENTICATION_BACKENDS . Zeige http://docs.djangoproject.com/en/dev/topics/auth/ # write-a-Authentifizierungs-Backend

 from django.contrib.auth.models import User class EmailBackend(object): """ Authenticates against the email field of django.contrib.auth.models.User """ def authenticate(self, email=None, password=None): # Try using the email if it is given if email: for user in User.objects.filter(email=email): if user.check_password(password): return user def get_user(self, user_id): try: return User.objects.get(pk=user_id) except User.DoesNotExist: return None 

Dann, nach seiner Meinung, ruft authentifizieren django.contrib.auth.authenticate .

Zwei Punkte zu beachten:

  • Sie wollen wahrscheinlich die Standard halten AUTHENTICATION_BACKEND es, vor allem, wenn Sie die Django admin verwenden möchten.
  • Wenn die Benutzer signieren, ohne einen Benutzernamen, müssen Sie für sie. Ich benutze die Base-64-Version eines uuid zu

Legen Sie den Benutzernamen in eine Methode, um irgendwo zu speichern (zum Beispiel der neue Benutzer-Form):

 import uuid, binascii username = binascii.b2a_base64(uuid.uuid4().bytes) 

Dieser Text stammen aus der ursprünglichen Quelle in Stackoverflow.com


Flex Array Bildrotation Nr. - 2012-05-17 14:00

Wie kann ich ein Bild drehen, zum Beispiel. 180 Grad nach rechts mit der Matrix

Ich kann den folgenden Code verwenden, um das Bild um 90 Grad, aber es ist allmählich, Meaing

 var matrix:Matrix = new Matrix(); matrix.rotate(Math.PI/2); matrix.tx = imgControl.content.height; var bitmapData:BitmapData = new BitmapData(imgControl.content.height, imgControl.content.width); bitmapData.draw(imgControl.content, matrix); imgControl.source = new Bitmap( bitmapData); 

Jedes Mal, wenn Sie den Code aus dem Bild um 90 Grad gedreht.

Was ich will, ist um 90 erhöht jedes Mal, aber das um 180 explizit, rotate90 und so weiter.

Ich bin nicht vertraut mit der Matrix, aber ich denke, dass macht es wirklich BitmapData Manipulation und nicht nur durch sein Beispiel. Drehen Sie den Gehäuseteil des Bildes (zu stoppen, wenn ich falsch liege).

Wenn ja, ich glaube, Sie haben das Image jedes Mal, wenn ich den Knopf drehen.

Bin ich etwas fehlt?

Vielen Dank im Voraus für jede Beratung und Anregungen

Ran


BenutzerBandi-T sagte:

Die Matrix hat keine wirkliche BitmapData Manipulation.

Ist bitmap.draw Anruf empfängt das gedrehte Bild von imgcontrol.content die Bitmap, nachdem Sie den Code imgcontrol.content überschrieben mit dem gedrehten Bild.

Zum Beispiel wird der Code auf, ja, müssen Sie das Bild aus dem Nichts vor jeder Umdrehung neu laden oder haben Sie den Überblick über die Rotationen zu halten in einer Variablen und berechnen, wie viele Male Sie sich wenden können erreichen die gewünschte Drehung.

Wenn Sie bis zu 90 Grad in einem mehrstufigen drehen müssen, dann ersetzen

 matrix.rotate(Math.PI/2); 

mit

 matrix.rotate(Math.PI/2 * howmanytimesyouwanttorotateby90degrees); 

Dieser Text stammen aus der ursprünglichen Quelle in Stackoverflow.com


Erstellen Sie verwaltet. NET Array ohne Initialisierung alle Nullen - 2012-05-17 14:00

Nehmen Sie die folgenden C #-Methode:

 static double[] AddArrays(double[] left, double[] right) { if (left.Length != right.Length) { throw new ArgumentException("Arrays to add are not the same length"); } double[] result = new double[left.Length]; for (int i = 0; i < left.Length; i++) { result[i] = left[i] + right[i]; } return result; } 

Wie ich verstanden habe, wird die CLR initialisiert result auf Null, obwohl AddArrays ist im Begriff, vollständig trotzdem zu starten. Gibt es eine Möglichkeit, diese zusätzliche Arbeit zu vermeiden? Auch wenn es mit unsicheren C bedeutet, #, C + + / CLI, oder die rohen IL-Code?

EDIT: Man kann nicht aus Gründen beschrieben hier .


Benutzer Joel Coehoorn antwortete:

Sie müssen folgendes tun:

 static IEnumerable<double> Add(IEnumerable<double> left, IEnumerable<double>rechts) {using (IEnumerator <double> left.GetEnumerator l = ()) verwenden (IEnumerator <double> right.GetEnumerator r = ()) {while (l.MoveNext () & & r.MoveNext ()) {return Leistung l.Current r.Current +;} if (l.MoveNext () | r.MoveNext ()) | throw new ArgumentException ("fügte hinzu, dass keine Sequenzen, die gleiche Länge haben ");}} 

Matrizen können doppelt für diese Funktion zu verbringen. Wenn Sie wirklich brauchen ein Array als das Ergebnis (Tipp: wahrscheinlich nicht), kann nur aufrufen, .ToArray() Rückgabewert der Funktion.

. Net 4 haben bereits für dieses Jahr:

  double[] array1 = {1.0, 2.0, 3.0}; double[] array2 = {4.0, 5.0, 6.0}; IEnumerable<double> result = array1.Zip(array2, (a,b) => a + b); foreach(double d in result) { Console.WriteLine(d); } 

Dieser Text stammen aus der ursprünglichen Quelle in Stackoverflow.com


Ist die Authentifizierung Plugins, die mit DataMapper arbeiten? - 2012-05-17 14:00

Ich bin in der Notwendigkeit einer Authentifizierungsmethode, die mit DataMapper funktioniert. Ich kann sehen, dass das Plugin Felder authlogic erfordert

  crypted_password, password_salt, persistence_token 

in der Benutzer-Modell. Ist es ausreichend, nur die Felder, um die Definition von Benutzer-Modell mit DataMapper hinzufügen?


Benutzer John Feminella beantwortet

Sollte viel anspruchsvoller als das, denn die APIs sehr verschieden von DataMapper und ActiveRecord sind. Allerdings scheint es mindestens eine Person auf der gleichen Wellenlänge wie Sie. Schauen Sie sich dieses Ticket , das einen Link zu dieser hat pastie authlogic, dass ein Benutzer-Modell mit integriert DataMapper .


Benutzer James sagte:

simplest_auth

DataMapper unterstützt


Dieser Text stammen aus der ursprünglichen Quelle in Stackoverflow.com


JQuery IE6 Problem - 2012-05-17 14:00

Hallo Leute,

Kann jemand sehen, nichts Bestimmtes, dass verursachen könnte Probleme mit jQuery in Internet Explorer 6? Keine Artikel jQuery wird überhaupt in IE6 geladen. Alle anderen Browser sind in Ordnung! Vielen Dank für Ihre Hilfe!

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>{tag_pagetitle}</title> <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="/js/jquery-ui-1.7.custom.min.js"></script> <link rel="stylesheet" href="/stylesheets/tabs.css" type="text/css" media="screen, projection" /> <link href="/stylesheets/main.css" rel="stylesheet" type="text/css" /> <link href="/stylesheets/gallery-1.0.1.css" rel="stylesheet" type="text/css" /> <link href="/stylesheets/forms.css" rel="stylesheet" type="text/css" /> <link href="/facebox/facebox.css" rel="stylesheet" type="text/css" /> <meta content="text/html;charset = UTF-8 "http-equiv =" Content-Type "/> <! ​​- [if IE]> <link type =" text / css "rel =" stylesheet "href =" / stylesheets / ie.css "bc = "1" /> <[endif] -> <! - [if IE 6]> <link type = "text / css" rel = "stylesheet" href = "/ stylesheets/ie6site.css" bc = "1" /> <[endif] -> </ head> <body id = "gallerydetail" id = "site"> span> <img src = "http://thecreativealliance.org/images/top-corners_03.gif" width = "900" title = "3" alt = "" / id = "Banner">> <div <img alt = "" src = "http://thecreativealliance.org/images/site/creative-alliance-logo.jpg "/> <div "cerrar sesión" id = {class = "entrada-reg-link"> module_whosloggedin, Input /} </ div> <h1> Beispiel Gallery </ h1> </ div> <div id ="-Menü "> {module_menu, script = 550428} type>" text / javascript http://cdn.socialtwist.com/2010010232558-1/script.js = "" src "> </ script> <a href =" c-taf "href =" http://tellafriend.socialtwist.com: 80 "onclick =" return false; "style =" border: 0; padding: 0;margin: 0; "> alt <img src =" SocialTwist Tell-a-Friend "style =" border: 0; padding: 0; margin: 0; "src =" http://images.socialtwist.com/2010010232558- 1/button.png "onmouseout =" STTAFFUNC.hideHoverMap (this) "onmouseover =" STTAFFUNC.showHoverMap (dies '2010010232558-1 ', window.location, document.title) "onclick =" STTAFFUNC.cw (this, { ID: '2010010232558-1: Fenster links, sondern die Titel document.title}) "/> </ a> <div class="header-search"> Form name <=" catsearchform1870 "-Methode.? = "post" action = "/ Default.aspx sitesearch = 852 & ID = search-results.htm" class = "cmxform"> class <fieldset> <li> <ol> Eingang <= "cat_textbox_smallish" type = "text "name =" CAT_Search "id =" CAT_Search "value =" Suchen "onblur =" if (this.value =='') {this.value = 'Suche';} "onfocus =" if (this.value == 'Suchen') {this.value'';}" = /> </ li> <li> <input type = "image" src = "/ images/go-btn_12.png" class = "login-button" value = "Search" /> </ li> </ ol> </ <fieldset> /> <form / div> </ div> {} tag_pagecontent class = "gallery-cont"> <div <class="clr"> / div> </ div> class = "clr" id "> =" center {module_contentholder, 6762} <<div class="clr"> / div> </ div> </ div> script src <= "/ Facebox / facebox.js" type = "text / javascript"> </ script> < script type = "text / javascript" src = "/ js / jquery.trilemma.js"> </ script> <script type = "text / javascript" src = "/ js/jquery.truncate-2.3-pack.js "> </ script> <script type="text/javascript" src="/js/jquery.galleriffic.js"> </ script> <script type = "text / javascript" jQuery> (Dokument) ready (function ( $) {$ ('a [rel *= Facebox]') Facebox ({loading_image: ". e-mail" .. 'loading.gif, close_image' closelabel.gif '}) $ () jede Funktion ((. ) {var ats, Punkte, e, i, ats = ['a', '(a) "," [a]'], Punkte = ['dot', '(Punkt) "," [dot]'] , address = $ (this) html ();. for (i = 0; i + + i ats.length <) {address = address.replace (ATS [i] ,'@');} For (i = 0; i dots.length <i + +) {address = address.replace (points [i ],'.');} $ (this) html ("<a href =". Mailto: "+ Adresse + Adresse +'"..>' + '</ a >');}) $ (' twitswitch ') jede Funktion (() {var $ twitswitch = $ (this) if ($ twitswitch.text () =='') {$ ('# twitterlink') ();.}}); verbergen ('. LinkSwitch.) jede Funktion (() {var $ $ twitswitch = $ (this) if ($ twitswitch . text () {==''). $ ('# linkedinlink') ();}}), verbergen $ () für jede Funktion (() {var $ twitswitch = $ (this) "faceswitch.". if ($ twitswitch.text () {=='') $ ('# facebooklink'), wenn ($(". twitswitch ();.}}); verstecken. ") html () ==" "& & $ . (".." faceswitch "LinkSwitch.") html () == "" & & $ () html () == "") {$ ("# oder keine Verbindung.") hide ();} if ($ ( "# appswitch: contains (" Ja')"). Länge) {$ ("# reviewhold, # fragment-4-ol, die # fragment-4-intro"). hide (); zeigen $ ("cat gewählt ")... ();} Var $ tag = $ ('# tabs') Etiketten ();.. $ (".ui-tabs-panel ") für jede Funktion ((i) {var TotalSize = $ (" ui-tags Panel ".) size () - 1;. if (i = TotalSize) {next = i + 2, $ (Osten) append ("<a href rel ='#' Klasse ='motor neue pestaña' ='"+ along'> +" <span> Nächste Seite »</ span> </ a>!".); } if (i = 0) {last = i;!. $ (this) append ("<a href = class ='motor anterior-ficha''#' rel = previous'"+ +"'> <span>" Vorherige Seite </ span> </ a >");}}), $ ('.. neue Registerkarte, Registerkarte oben. ") klicken (function () {$ tabs.tabs (' select ', $ (Osten) attr ("rel ").); return false;}) $ ('.. tofour) click (function () {/ / bind Click-Ereignis zu verknüpfen tabs.tabs $ (' select ', 4) / / Switch to return false ;});}); fünften Registerkarte </ script> <script type="text/javascript"> $ (function () {jQuery ('select-cat.) Trilema ({ max:. 3, disablelabels: true });}); </ script> <script type="text/javascript"> jQuery (document) ready (function ($) {if ($ ("# logout:. enthält ("Exit')").Länge) {. $ ("# Logout") append ("oder href =" / manage "> <a Sample Edit </ a >');}. wenn ($ (" show-form-cont h2: contains ("Add Ihr Schaufenster ' ) "). length) {$ (" # banner h1 ") html. ('Showcase management ");} if ($ (" show-form-cont h2: enthält ('.')"). Bearbeiten Sie Ihre Fenster Länge) {$ ("# banner h1") html (' Showcase-Management »);.}});. jQuery (document) ready (function ($) {var gallery = $ ('Daumen #') galleriffic ({delay:. 3000, / / ​​in Millisekunden numThumbs: 20, / / Die Anzahl der Bilder, um zu zeigen preloadAhead Seite: 40 / / Set auf -1 für enableTopPager preload alle Bilder: false, enableBottomPager: true, maxPagesToShow: 7 / / Die maximale Anzahl der Seiten, zu zeigen, imageContainerSel Locator in der oberen oder unteren: '# slideshow "controlsContainerSel: renderSSControls" manager #': undefined captionContainerSel: '# Legenden "loadingContainerSel: true, / / ​​Gibt an, ob die Präsentation und Links Listen Pause renderNavControls gelehrt werden:true, / / ​​Gibt an, ob die Links Weiter und Zurück, um die Präsentation playLinkText bereitgestellt werden sollten: pauseLinkText 'Play',: prevLinkText 'Pause', 'Zurück', nextLinkText "Next" nextPageLinkText:, EnableHistory '<Zurück :: "Weiter>" prevPageLinkText false, / / ​​Gibt an, ob der Hash der URL und den Browser-Cache der Geschichte aktualisiert werden müssen, wenn das Bild von der aktuellen Veränderungen enableKeyboardNavigation Präsentation: true, / / ​​Gibt an, ob das Navigationssystem Tastenblock aktiviert ist autoStart: false, / / ​​Gibt an, ob die Präsentation sollte Wiedergabe oder Pause, wenn die Seite geladen syncTransitions zuerst: false, / / ​​Gibt an, ob die Ausgabe und in Übergängen gleichzeitig auftreten oder deutlich defaultTransitionDuration: 1000 / / Wenn Sie die Standard-Übergängen verwenden, geben Sie die Dauer von Übergängen onSlideChange: undefined, / / ​​akzeptiert ein Delegierter wie: function (PREVINDEX, NEXTINDEX) {... OnTransitionOut}: undefined, / / ​​akzeptiert ein Delegierter, wie zB:-Funktion (Bild, Titel, callback isSync,) {... OnTransitionIn}: undefined, / / ​​akzeptiert ein Delegierter als solche: function (Rutschbahn, Titel, isSync) {... OnPageTransitionOut}: undefined, / / ​​akzeptiert ein Delegierter als solche: function (Callback) {... OnPageTransitionIn}: undefined, / / ​​akzeptiert ein Delegierter als solche: function () {... OnImageAdded}: undefined, / / ​​akzeptiert ein Delegierter als solche: function (imageData, $ li) {... OnImageRemoved}: undefined / / akzeptiert ein Delegierter als solche: function (imageData, $ li) {... }});}); </ Script> {module_contentholder, 8514} </ body> </ html> 

Benutzer Phuong Nguyen antwortete:

Sie müssen IE auf Ihrem Computer Inspector Debuggen, um die HTML-Baum untersuchen installiert haben. Dies könnte einige HTML war arm, weil dummerweise IE6 seltsam verhält.Wenn nicht eine Hilfe, dann aktivieren Sie Script-Debugging in Visual Studio Debugger versuchen Insert-Anweisung irgendwo in deinem Code und beginnen sich zu drehen über das Stück Code.


Sie kauen , sagte:

Stellen Sie sicher, alles richtig ist Javascript. Ich habe das Gefühl, dass jQuery ist in Ordnung Laden, aber das js nicht mehr funktioniert, nachdem sie einen bestimmten Punkt zu erreichen.

Beispiel: Die erste Zeile in Ihren js veröffentlichte einen Aufruf Facebox nicht mit einem Semikolon enden.

 <script type="text/javascript"> jQuery(document).ready(function($) { $('a[rel*=facebox]').facebox({ loading_image : 'loading.gif', close_image : 'closelabel.gif' }) 

I überprüfen, um sicherzustellen, dass es eine dumme Syntaxfehler.


Dieser Text stammen aus der ursprünglichen Quelle in Stackoverflow.com


Sind die Artikel für C + +-Speicher MANAGEMENT lesen - 2012-05-17 14:00

Nach der Lektüre " C + + Memory Management: From Fear to Triumph "-Serie, ich glaube, Sie sollten die Artikel für die Speicherverwaltung zu lesen. Ich frage mich, was soll Artikel zu lesen sich nicht entgehen lassen.

Vielen Dank!


Benutzer St3fan antwortete:

Obwohl es nicht wirklich ein Artikel, ich glaube, die steigen smart_ptr Bibliothek Dokumentation hat gute Informationen über Memory-Management-C + +. Natürlich ist es in der Bibliothek der Bewehrung voreingenommen, aber ich denke, es wird einige gute Ideen daraus zu ziehen.


Benutzer Jagannath sagte:

Herb Sutter Behandlung auf Speicher-Management in seinem Buch "Außergewöhnlich C + +" und "C + + mehr außergewöhnlich."


Benutzer mloskot antwortete:

Lesen und lernen Sie auch auf RAII Sprache, ist Resource Acquisition Initialisierung der Artikel und die folgenden beiden:


Benutzer BitShift antwortete:

Einige Grundlagen:

Speicher als Programmier-Konzept in C und C + +

Frantisek Franek

Cambridge University Press

ISBN 0-521-52043-6


Benutzer Poluektov Alexander sagte:

Andrei Alexandrescu etwas zu sagen hat in seinerModern C + + Design Book. Interessierte wahrscheinlich

  • Kapitel 4. Kleine Objektzuordnung
  • Kapitel 7. Smart-Pointers

Obwohl der praktische Wert der Techniken der Andrei umstritten, lernen ohne Zweifel einige neue und interessante Dinge in diesem Buch.


Dieser Text stammen aus der ursprünglichen Quelle in Stackoverflow.com


Advertising

Facebook comments:

Advertising

Related Categories:

No related categories