-
Gesamte Inhalte
9912 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
3
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Klotzkopp
-
MFC: Controls aus Dialog auslesen
Klotzkopp antwortete auf xk4fu's Thema in C++: Compiler, IDEs, APIs
GetClassName Function () -
Nachtrag: Wenn das wirklich das einzige Objekt dieser Klasse ist, das angelegt wird, dann ist klar, warum das nicht klappt. Du rufst sofort nach dem Erstellen Get_ausgabe auf, die Berechnung wird aber erst ausgeführt, wenn der Button angeklickt wird. Das muss schon in der richtigen Reihenfolge passieren. Du kannst nicht erst die Farbe des Schrankes rausfinden, und dann anmalen.
-
Nein, das ist nicht ersichtlich. Wo erstellst du diese Instanz? Wo steht in deinem Code noch new Grundrechenarten()? Das ist aber nicht dieselbe Instanz, über die Aktion aufgerufen wird, sondern eine, die du dort neu erstellst. Der Schrank ist neu, der wurde nie angemalt.
-
MFC: Controls aus Dialog auslesen
Klotzkopp antwortete auf xk4fu's Thema in C++: Compiler, IDEs, APIs
Ja, das geht. Das ist keine ausreichende Fehlerbeschreibung. Zeig doch mal, was du hast, dann kann man auch sagen, was falsch ist. -
Ja, das wissen wir alles schon, und das hilft uns nicht weiter. Ich bitte dich hiermit zum dritten Mal, zu zeigen, wo und wie du die Instanz der Klasse Grundrechenarten anlegst, und wo und wie du Aktion aufrufst. Es kommt nicht darauf an, wie die Klasse aufgebaut ist, sondern was du damit machst. In Worten des Beispiels: Es kommt nicht darauf an, wie der Schrank aufgebaut ist, und welche chemischen Vorgänge beim Anmalen ablaufen. Es kommt darauf an, wie du dir merkst, wo du den Schrank hingestellt hast.
-
Das hat mit dem Inhalt der Klasse Grundrechenarten praktisch nichts zu tun. Entscheidend ist, wie und wo du die Instanz dieser Klasse anlegst. Ich dachte, das wäre inzwischen klar geworden. Wenn du nicht weißt, wie du deinen rot angemalten Schrank wiederfinden sollst, helfen dir selbst die besten Schrankbaupläne nicht weiter.
-
Damit hier keine Metadiskussion entsteht, mache ich den Thread zu. Warum wir alte Threads nicht löschen, hat TDM ja beantwortet.
-
Du brauchst den richtigen Schrank, um beim Beispiel zu bleiben. Du rufst Aktion mit einer ganz bestimmten Instanz der Klasse Rechnen auf. An der Stelle, an der du die Ausgabe brauchst, brauchst du also eine Referenz auf genau diese Instanz. Du musst dir merken, welchen Schrank du angemalt hast. Zeig doch mal, wie und wo du Aktion aufrufst. Woher kommt das Rechnen-Objekt, mit dem du das tust?
-
Stell dir mal vor, du hast einen neuen Schrank. Neue Schränke sind weiß. Du malst deinen Schrank rot an. Dann kaufst du dir noch einen Schrank, genau den gleichen. Welche Farbe hat der? "Schrank" ist deine Klasse Rechnen. "Schrank rot Anmalen" ist das Aufrufen der Methode Aktion. Und die Farbe des Schranks ist der Wert, den du in ausgabe speicherst. Und wenn du "new Rechnen" sagst, kaufst du einen neuen Schrank. Der ist weiß, egal wie viele andere Schränke du vorher angemalt hast. Jetzt klarer?
-
Mag sein, dass sie aufgerufen wird, aber offensichtlich nicht mit der Instanz der Klasse Rechnen, die du in Main neu erzeugst. Jedes Rechnen-Objekt hat seinen eigene ausgabe-Variable. Wenn du bei einem solchen Objekt die Methode Aktion aufrufst, kannst du nicht erwarten, dass das auf die Ausgabe eines ganz anderen Objekts irgendeinen Einfluss hast. "Was du in einen Schrank hineinlegst, kannst du nicht aus einem anderen herausholen." Ist dir der Unterschied zwischen Klasse und Instanz klar?
-
Naja, du solltest diese Methode auch irgendwo aufrufen.
-
Du sollst für f(n) die Funktion einsetzen, die du untersuchen sollst:
-
Jetzt sind wir soweit wie vorher, weil wir nicht wissen, wie pointlist_t aussieht.
-
Wie gesagt, das kommt darauf an, was in der Struktur so drin ist, und ob die Struktur auf beiden Seiten der Kommunikation dasselbe binäre Layout hat. Ohne mehr über deine Struktur zu wissen, können wir dir diese Frage nicht beantworten.
-
Ich glaube, etwas weiter unten gibt es noch den "Konsolen-Experten".
-
Du hast es vermutlich nicht bemerkt, aber du hast da einen fast fünfeinhalb Jahre alten Thread ausgegraben. :old
-
Klar. Du musst die Struktur serialisieren. Kommt auf den Inhalt der Struktur an. Wenn da keine Zeiger drin sind, und Quelle und Ziel dieselbe Architektur haben, kannst du einfach die Adresse der Struktur und sizeof benutzen.
-
f ist eine Funktion, die die Inputgröße n auf die benötigte Zeit f(n) abbildet. Dazu hast du Zeiträume gegeben, also bestimmte Werte für f(n). Dazu sollst du jeweils das maximale n ermitteln. Konkret für den ersten Fall: f(n0) = 1 Sekunde = 1.000.000 Mikrosekunden. Gesucht ist das größte n0, das diese Gleichung löst. Jetzt musst du nur noch f(n) durch die gegebene Funktion ersetzen und nach n0 auflösen.
-
Im Wikipedia-Eintrag für PAP gibt es einen Link auf das DIN-Dokument: http://www.fh-jena.de/~kleine/history/software/DIN66001-1966.pdf Dort findest du auf Seite 9 ein Beispiel. Du schreibst den Ausdruck, der zur Fallunterscheidung herangezogen wird (in deinem Fall herkunftsland) in die Raute, und an die abgehenden Zweige die jeweiligen Werte.
-
Je nach Zielarchitektur kann es vorteilhaft sein, wenn du die Schleife so umstellst, dass sie rückwärts bis 0 zählt. Du könntest auch versuchen, die Schleife zu "entrollen", beispielsweise mit Duff's Device. An der Transformation selbst lässt sich IMHO nichts machen. Du könntest die Lookup-Tabelle auf 16 Bit vergrößen, so dass du zwei Zeichen gleichzeitig transformieren kannst. Aber das könnte auch die Cache-Lokalität verschlechtern.
-
Ein Link auf die Startseite von Google ist nicht besonders hilfreich. squidward, da du ja offenbar unter Windows zu Gange bist, könnte das hier für dich interessant sein: Improved Console
-
Zumindest ist kein undefiniertes Verhalten mehr drin Das kommt ein wenig auf den Compiler an. Möglicherweise ist die Lösung mit std::vector ein wenig langsamer, möglicherweise sind sie gleich schnell. Der Unterschied sollte aber so klein sein, dass du dir darüber aber nur Gedanken machen solltest, wenn du sicher bist, dass genau diese Stelle einen Performance-Flaschenhals darstellt. Wenn du Bedenken wegen der Performance hast, könntest du auch std::tr1::array benutzen (oder boost::array, wenn dein Compiler den TR1 nicht unterstützt).
-
Ja, das ist das Schöne an undefiniertem Verhalten, wie es der Standard nennt. Das muss nicht abstürzen. Es kann alles passieren, auch dass es einfach tut, was es soll. Da gibt es nicht viel zu begründen. Der Standard sagt, wenn du new[] benutzt, musst du delete[] zum Freigeben benutzen, alles andere erzeugt wiederum undefiniertes Verhalten. Es gibt Compiler, die in solchen Fällen trotzdem funktionierenden Code erzeugen, aber darauf solltest du dich nicht verlassen.
-
Der Zugriff auf text[zahl] ist nicht erlaubt, der letzte gültige Index ist zahl-1. Wenn du new[] benutzt, musst du auch delete[] benutzen. Nicht Exception-sicher. Ich würde das eher so machen: std::vector<char> v(zahl, ' '); v.back() = '\0'; tue was…[/code]
-
Bearbeitung eines vorhandenen Spiels!!!
Klotzkopp antwortete auf threis's Thema in C++: Compiler, IDEs, APIs
Ich fürchte, der "eine oder andere Tipp" wird dich bei deinem erkennbaren Kenntnisstand nicht weit bringen. Der gezeigte Code sollte sich übrigens nicht mal kompilieren lassen. Jemand hat anscheinend die gesamte Methode void CspecialFX::Anzeigen in die Methode CIntegrator::GetForceVector hineinkopiert. Wenn du das warst, solltest du wirklich die Finger davon lassen, und dir eine Aufgabe suchen, die besser zu deinen Fähigkeiten passt. Der gezeigte Code enthält mMn auch nicht die Stelle, an der du ansetzen müsstest. Du musst dich in die Architektur des Programms einarbeiten. Die interessanten Stellen sind vermutlich die, an denen die gezeigten Methoden aufgerufen werden. Es reicht vermutlich auch nicht aus, nur einmal etwas anzuzeigen, weil das beim nächsten Neuzeichnen wieder weg ist. Und Spiele versuchen üblicherweise, sich so schnell wie möglich zu zeichnen.