Ich habe zuhause Ausgaben von dotnetpro von 4/2011 bis 3/2013, die letzten 5 noch originalverpackt, die ich aus Platzmangel weggeben muss. Falls jemand Interesse hat, bitte melden
Beiträge von xruxl
-
-
Puh, das wusste ich auch nicht. Noch so eine kleine Nervigkeit mehr
Ich hab auch nur gelesen, dass man das machen soll. Aber trägt sicher zur Übersichtlichkeit bei. -
Hat sich erledigt.
-
Hallo, ich hoffe ihr könnt mir weiterhelfen. Ich programmiere normalerweise C#, manchmal auch Java und habe noch nie etwas in C++ gemacht, in C auch nur was für die Uni nötig war (Sysprog, Übersetzerbau), also bitte um Nachsicht.
Ich beginne gerade ein kleines Programm in C++ und wüsste gerne, ob ich einige Dinge richtig verstanden habe und was da sozusagen Best Practise ist.
Neues Objekt erzeugen
Hier wird der Speicher automatisch freigegeben, wenn der Scope verlassen wird?
Auf Methoden greift man hier mit . zu?Hier wird der Speicher nicht automatisch freigegeben, sondern mit delete?
Auf Methoden greift man hier mit -> zu?Welche der beiden Möglichkeiten verwendet man üblicherweise?
Und wie sieht das aus, wenn ich in einer Klasse als Eigenschaft ein Objekt einer anderen Klasse habe, also in Java etwa so:
Codeclass TestA { private TestB testB; public TestB getTestB() { return testB; } public void setTestB(TestB val) { testB = val; } }
Wie würde man diese Klasse in C++ schreiben?
So (vereinfacht: Headerfile und so):Codeclass TestA { private TestB testB; public TestB getTestB() { return testB; } public void setTestB(TestB val) { testB = val; } }
oder so:Codeclass TestA { private TestB *testB = new TestB(); public TestB* getTestB() { return testB; } public void setTestB(TestB *val) { testB = val; } }
Übergabe von Objekten als Parameter an Funktionen
Wenn ich das richtig verstanden habe, wird hier eine Kopie des Objekts übergeben?
Und hier wird eine Referenz auf das Objekt übergeben?
Welche von beiden Möglichkeiten verwendet man "im Normalfall"?
-
Ja, ist mir klar, dass es keine 100%ige Lösung gibt. Ich frage mich nur, was die dort verwenden, dass immer noch erkennt, dass ich mich schon registriert habe, obwohl ich bereits alle Arten von Cookies gelöscht habe.
-
Hallo,
ich habe beruflich mit einem Webauftritt zu tun, wo recht erfolgreich Mehrfach-Registrierungen verhindert werden. Nun soll ich herausfinden, wie die das anstellen, bin aber nachdem ich alles mir Bekannte ausschließen konnte ziemlich ratlos. Leider habe ich auch nicht unbegrenzt Testlinks zur Verfügung, kann also nicht einfach alle möglichen Kombinationen austesten und der JavaScript-Code ist zum größten Teil absichtlich unlesbar gemacht. Vielleicht hat jemand noch eine Idee?
Was ich weiß:
Flash muss installiert und aktiviert sein, da die Registrierung sonst nicht möglich ist, sonstige evtl. interessante Plugins (Java, Silverlight) habe ich deaktiviert.Es scheint sich zudem um eine browserspezifische Sache zu handeln, da ich die Registrierung zunächst genau einmal im Firefox 3.5 aufrufen konnte (seitdem ist sie von diesem PC nicht mehr im Firefox aufrufbar). Danach konnte ich sie aber noch ebenfalls genau einmal im Internet Explorer 8 aufrufen.
Folgendes kann ich bereits ausschließen (da alles gelöscht und trotzdem keine erneute Registrierung möglich):
- "normale" HTTP-Cookies
- Flash-Cookies (Shared Objects)
- DOM Storage
- IP-Adresse (da mehrfacher Einstieg aus dem selben Netzwerk, aber von unterschiedlichen PCs möglich)Eine Möglichkeit wäre auch, dass aus diversen Systemdaten (zB Bildschirmauflösung, installierte Schriftarten) eine Art Fingerabdruck erstellt wird, aber zumindest diese beiden Parameter habe ich versuchsweise verändert - leider erfolglos.
-
Ich brauche eine Art "ArrayList", in der ich eine unbestimmte Anzahl von Strings speichern kann. Ich hab mir dazu eine Lösung überlegt, die auch funktioniert, aber ich weiß nicht ob das vom Konzept her so richtig ist.
Das Konzept (vereinfacht):
Code
Alles anzeigen**char liste = NULL; //Einlesen int numElements = 0; while (/* lese Eingabedaten */) { numElements++; liste = realloc(liste, sizeof(*char)*numElements); strncopy(*(liste + numElements - 1), /* Eingabe */, MAXLENGTH); } //Ausgabe int i; for (i = 0; i < numElements; i++) { fprintf(stdout, "%s", *(liste + numElements)); } //Speicher löschen for (i = 0; i < numElements; i++) { free(*(liste + numElements)); } free(liste);
Besonders das Speicherfreigeben ist mir auch noch nicht ganz klar. Die Schleife um den Speicher für die einzelnen Strings freizugeben ist meiner Meinung nach nötig, weil sonst nur die Pointer auf die Strings gelöscht werden, stimmt das? Und gibt realloc() den alten Speicherbereich (wenn verschoben) selbst wieder frei oder muss ich das machen?
-
Marketagent.com sucht zur Betreuung und Weiterentwicklung der eigens konzipierten Umfrage-Plattform einen jungen, dynamischen Software-Entwickler (Vollzeit). Weitere Informationen in der Job-Beschreibung im pdf-Attachment bzw. auf http://www.marketagent.com. Wir freuen uns auf Ihre Bewerbung.