Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. 35 geteilt durch 150. Wenn du Prozente willst, das ganze noch mal 100. Aber was hat das mit C++ zu tun?
  2. - Es muss int main heißen. - Einzeilige Kommentare leitet man mit einem doppelten Slash ein, nicht mit doppeltem Backslash.
  3. Das hattest du doch schon fast: for(i = 0; i < m_iAnz; ++i) { cout<<m_pKunden[i]->GetNName()<<endl; }[/CODE]
  4. qsort ist eine C-Funktion und nicht für den Einsatz mit Klassen und Memberfunktionen geeignet. Du könntest deinen globalen Zeiger auf die Kundenliste-Instanz benutzen. Die globale Variable selbst ist aber schon schlechter Stil. Nimm std::sort: #include <algorithm> // Prädikat struct NNComparePred { bool operator()(Kunde* k1, Kunde* k2) { return 0 > strcoll(k1->GetNName(), k2->GetNName()); } }; // Aufruf std::sort( m_pKunden, m_pKunden + m_iAnz, NNComparePred());[/CODE]
  5. Nein, du hast sie als Memberfunktion deklariert. qsort braucht entweder eine statische oder eine nicht-Member-Funktion (freie Funktion) Dann darf sie keine Memberfunktion sein. Ja. Hat aber nichts mit den Fehlern zu tun. Musst du qsort benutzen? Mit std::sort kämst du um die hässlichen void-Zeiger drumherum.
  6. Ich frage mich, wie du darauf kommst, dass ich das bin. qsort erwartet als letzten Parameter einen Zeiger auf eine Funktion, die so aussieht: int NameEgal(const void*, const void*); Erstens ist KundenListe::Vergleich() kein Funktionszeiger, sondern ein Funktionsaufruf. Die Klammern sind zuviel. Zweitens passt die Signatur der Funktion nicht. KundenListe::Vergleich ist eine nichtstatische Memberfunktion und hat den Typ int(KundenListe::*)(). Du musst Vergleich entweder statisch machen oder nicht-Member. Außerdem musst du die const void*-Parameter hinzufügen. Hier fehlen beim ersten GetNName die Klammern. Nachtrag: In Vergleich darf natürlich auch keine Schleife sein. Über die Parameter erhältst du die beiden Zeiger, die du vergleichen sollst.
  7. Ich verstehe gerade das Problem nicht. Wie greifst du auf das Eingabefeld zu, und was meinst du mit "Setter Methoden"?
  8. Nein, nicht "am besten". Ich halte es für eine Frechheit, derart viel Code abzuladen, und dann die Fehlerbeschreibung auf "ich weiß nicht weiter" zu beschränken.
  9. Der cast nach int bewirkt hier nichts, daher kannst du ihn auch weglassen. bool isInASCII(char ch) { return ch > 65 && ch < 122; }[/CODE] Aber bist du sicher, dass du nicht >= 65 meinst?
  10. Das knallt nicht. CString hat einen Konvertierungsoperator, der hier aufgerufen wird. Genau deswegen ist es aber auch komplett unnötig.
  11. Hier schon nachgelesen? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/Creating_Signed_CAB_Files_for_MFC_and_ATL_Controls.asp
  12. Ganz genauso.
  13. #include <vector> struct basis { int wert1; int wert2; int wert3; }; std::vector<basis> Datenbasis; int main() { // 1. ermitteln der Anzahl erfolgt hier irgendwo und wird in int-Variablen x gespeichert Datenbasis.resize(x); // dann passiert noch mehr // 2. kann man hier noch mehr speicher reservieren? Datenbasis.resize(neue_groesse); // hier wird gerechnet // 3. Speicher freigeben // fällt weg, macht der vector }[/CODE] Statt resize kannst du auch neue Elemente mit push_back anhängen.
  14. Muss es ein Array sein? Warum benutzt du keinen vector?
  15. Habe ich doch schon geschrieben. Funktioniert das nicht?
  16. Das eigentlich Problem ist ja nun gelöst.
  17. Das ist dann ein Feature der Entwicklungsumgebung. Wenn du das erstellte Programm außerhalb der IDE startest, sollte es sich am Ende eigentlich auch sofort schließen.
  18. Es ist völlig normal, dass sich das Fenster sofort schließt, wenn das Programm beendet ist. Wenn du das nicht willst, musst du dafür sorgen, dass das Programm nach der letzten Ausgabe noch wartet, z.B. indem du eine weitere Eingabe einliest: char c; cin >> c;[/CODE]
  19. Hast du dich vielleicht verlesen? http://msdn.microsoft.com/library/en-us/vclib/html/_mfc_crecordset.3a3a.open.asp Da steht unter Exceptions: Der Stern ist insofern wichtig, als CDBException ein anderer Typ ist als CDBException*. Das eine ist die Klasse selbst, das andere ist ein Zeiger auf die Klasse. Und bei catch muss der Typ passen.
  20. Das ist ein Sicherheitsfeature von Outlook. Ich bezweifle, dass man das programmiertechnisch umgehen kann, sonst wäre es ein sehr schlechtes Sicherheitsfeature.
  21. Keine Sorge, hab PVP-Immunität.
  22. Kannst du dafür ein Beispiel geben? Da der Standard nicht vorschreibt, wie die Containerklassen zu implementieren sind, kann man da keine pauschale Antwort geben. Welche STL-Implementierung benutzt du?
  23. Ich hab momentan leider keine Zeit. Das Echte Leben[tm] holt mich immer wieder ein
  24. CRecordset::Open kann CDBException* (und CMemoryException*) werfen. Die Sternchen sind wichtig.
  25. Das habe ich doch geschrieben: count gibt die Anzahl der Elemente an, die gerade auf dem Stapel liegen, size gibt an, wie viele Element maximal reinpassen. Das ist, wie gesagt, nur eine Vermutung. Ohne die Implentierung der Klasse kann man da nur spekulieren. Pop soll den obersten Wert auf dem Stapel an den Aufrufer zurückgeben. Da das offensichtlich nicht über den Rückgabewert geschieht - denn der ist bool, anscheinend ein Fehlercode - geht das nur über einen Zeiger- oder Referenzparameter. Bei Push ist das nicht notwendig.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...