Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Klassenobjekte während d. Laufzeit belibig oft erzeugen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
31.03.2004, 21:16 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat:
Windalf postete
@guybrush
mir fehlen noch zuviele grundlagen... du bist ein gutes beispiel dafür... bei jedem dritten thread von dir lern ich noch was richtig neues von dem ich vorher nichts gehört habe...

*rotwerd*

Zitat:

was ich glaube ich relativ gut kann ist algorithmen zu bestimmten problemen zu entwickeln was ja aber eigentlich wenig mit programmierung zu tun hat (also quasi z.b. das was navi gerade gefragt hat wie man eine heuristik bastelt um dreiecke kreise und rechtecke zu erkennen würde mich nicht schwer fallen).
Das umsetzen dieser algorithmen in quellcode ist dann ja nicht mehr weiter schwer... ist ja mehr oder weniger nur ein 1:1 abgetippe...
Ich bin also eher auf der Konzeptionellen Ebene vertreten

Aber das ist doch viel wichtiger und besser als ein paar APIs zu kennen (denn das liegt einfach nur daran wie oft man die schon benutzt hat). Wenn ich hier im Forum Beiträge von dir oder auch von anderen lese bin ich oft nur am staunen (oder am rätseln weil ich`s nicht kapiere) auf welche Algorithmen ihr kommt. Da fehlen mir ganz einfach die mathematischen Grundlagen und die sind IMHO viel schwerer zu erlangen als ein paar APIs zu kennen.

Außdem, wenn ich mir verschiedene andere "Programmierer" angucke, dann kannst du das auch

Dieser Post wurde am 31.03.2004 um 21:16 Uhr von Guybrush Threepwood editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
31.03.2004, 21:31 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Da fehlen mir ganz einfach die mathematischen Grundlagen und die sind IMHO viel schwerer zu erlangen als ein paar APIs zu kennen.


naja die bekommt ja eigentlich jeder auf der uni (wenn man nicht gerade deutsch studiert)


Zitat:

Außdem, wenn ich mir verschiedene andere "Programmierer" angucke


naja die gibt es halt auch, aber die sind einfach kein massstab...erstrebenswert ist es so zu werden wie virtual... (der sich hier nur noch verdammt selten blicken lässt)
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
31.03.2004, 21:52 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat:
Windalf postete
naja die bekommt ja eigentlich jeder auf der uni (wenn man nicht gerade deutsch studiert)

joa, aber ich hab halt "nur" realschule danach hbfi und nähere mich jetzt dem ende meiner Ausbildung zum Fachinformatiker Anwendungsentwicklung.
Ich finde es einen riesen Witz das wir in der Berufsschule kein Mathe haben, höchstens als Wahlpflichtfach und das ist leider auf Kindergartennivou (haben jetzt die PQ-Formel durchgenommen )


Zitat:

naja die gibt es halt auch, aber die sind einfach kein massstab...erstrebenswert ist es so zu werden wie virtual... (der sich hier nur noch verdammt selten blicken lässt)

Man muss ja nicht direkt übertreiben
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
31.03.2004, 22:08 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Ich finde es einen riesen Witz das wir in der Berufsschule kein Mathe haben, höchstens als Wahlpflichtfach und das ist leider auf Kindergartennivou (haben jetzt die PQ-Formel durchgenommen


hmm ohne abi und unimathe würd ich dann in manchen fällen auch dumm aus der wäsche schauen das hat mir schon ungemein geholfen...
hm was bilden die denn da eigentlich aus wenn die mit euch die pq-formel machen die ja eigentlich stoff der neunten klasse ist. sprich jeder der einen schulabschluss hat kennt die und da sollte man dann auch in der berufsschule verraussetzen können das jeder zumindest mal was von gehört hat. man kanns ja nochmal kurz wiederholen aber breit drauf rumtreten bringt ja nicht wirklich viel (die die es vorher nicht verstanden haben werdens dann wohl nie verstehen und die andern langweilen sich zu tode), dann hätte man es sich ja auch sparen können in die schule zu gehen und gleich nach der grundschule ne berufsausbildung machen... naja ist halt das deutsche bildungssystem
naja kannst dir ja immernoch überlegen zu studieren wenn die kohle reicht (oder falls die eltern blechen ) Ich habs bisher jedenfalls nicht bereut. Ist doch insgesamt ein sehr entspanntes Leben
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 31.03.2004 um 22:09 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
31.03.2004, 22:20 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat:
Windalf postete
naja kannst dir ja immernoch überlegen zu studieren wenn die kohle reicht (oder falls die eltern blechen ) Ich habs bisher jedenfalls nicht bereut. Ist doch insgesamt ein sehr entspanntes Leben

Hatte früher mal mit dme gedanken gespielt, aber ich werde nächste Woche wohl nen Vertrag in meiner Firma unterschreiben das die mich nach der Ausblidung einstellen. Hab irgendwie keine Lust zu studieren (obwohl das für meinen Traumberuf (Spiele programmieren) seeeehr dienlich wäre), aber in meiner Firma ist es auch cool.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
31.03.2004, 22:32 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja falls dich nur deine mathekenntnisse ärgern kann man die ja auch in ner Volkshochschulkursen oder so nachholen , ein Buch lesen oder halt das Internet durchforsten...


Zitat:

Hab irgendwie keine Lust zu studieren (obwohl das für meinen Traumberuf (Spiele programmieren) seeeehr dienlich wäre)


naja in den meisten fällen ist es totaler schwachsinn das man studiert haben muss um irgendwas bestimmtes zu machen... aber in deutschland wird halt wenn du angestellter bist meist danach bezahlt was auf dem papier steht...
wobei du da als informatiker schon ein wenig mehr glück haben kannst...
das biste ist wahrscheinlich wenn man erst ein wenig berufserfahrung sammelt und sich dann selbstständig macht... Wenn du erstmal einen namen hast kräht kein hahn mehr danach ob du nen titel hast oder nicht. Problem ist es am anfang halt nur an aufträge zu kommen wenn du nicht ein professor mit dir im namen rumführst
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
01.04.2004, 10:38 Uhr
RHBaum



@Windalf

Zitat:

meine stärke liegt nicht gerade daran api's zu verwenden geschweige denn hinter deren konzepte zusteigen...

Das geht schneller als wie du "Hilfe" schrein kannst ! Wenn Du einmal genug Zeit und Energie dafuer hasst, also sprich dich "Hauptberuflich" damit auseinandersetzen musst, gehts ganz flott :-)
Im gegenteil, wird zu schnell langweilig meistens

@Rip
Allgemein:
Deine Scrollerklasse ok ... da blick ich ned genau durch was die genau tut, aber das wirst du schon wissen :-)
Warum willst die "unbedingt selber dynamisch" verwalten ?
Die hasst ne nette Klasse, schreibst aber ne menge C-Like code drumherum. Das ist nur in den Faellen sinvoll, wo du ganz spezielles Verhalten hasst und vielleicht wo es auf auf maximalste Geschwindigkeit ankommt.

Dein Scrollobj ist der Versuch nen Container zu implementieren ... der name, naja wuerde mir da nicht so gefallen .... ScrollObjManager, oder ScrollObj[List,Set,Map ....] waeren sicher besser :-)
Benutz die schon vorhanden Container ! (zum Beispiel die STL, oder die aus ner Anderen Lib die schon eh verwendest) Dein code ist alles andere als Fehlersicher, oder Fehlerneutral ... Sprich wenn du irgendwo nen Fehler geworfen bekommst, ist dein ganzes System instabil .... (soll es sicher auch noch nicht sein, die fertigen container sind es aber meist schon)


C++:
// Header: "Classes.h"
class Scroller
{
    private:
        int x;
        int y;
        int values;
        float size;
        char * name;
    public:
        Scroller(int _x, int _y, int _values, float _size, char *_name)
        {
            x=_x;
            y=_y;
            values=_values;
            size=_size;
            name=new char[strlen(_name)+1];
            strcpy(name,_name);
        }
        ~Scroller()
        {
            delete []name;
        }
        int X()            {return x;}
        int Y()            {return y;}
        int Values()    {return values;}
        float Size()    {return size;}
        char* Name()    {return name;}
};



Denk nicht, das man da nix mehr optimieren kann !
deine Getter veraendern das Objekt nicht !!! Const ist ne nette sache um sich vor sich selbst zu schuetzen, sollte man unbedingt nutzen .... !

char * als member in ner klasse und allokierung im konstruktor ist nicht Fehlersicher .... bei Laufzeitfehlern, wenn die abfaengst, wirst speicherlecks bekommen ....
besser: Zeiger auf allocierte Speicherbereiche in smartpointer packen (auto_ptr reicht in deinem fall) ...
noch besser: Stringklassen verwenden !!! (std::basic_string) !

Vorschlag:
Wenn Sowieso alles inline codest, also deine funktionen im "Header" definierst, dann mach den Stringtyp als Template parameter. Das erhoeht die Wiederverwendbarkeit .....

Weitere Strategie:
Spendier deiner Klasse nen Copy Construktor, damit sie in container tun kannst ....

Noch nen Hinweis:
Oeffentliche Methoden in der H Datei immer relativ weit vorn schreiben, dann brauchen die Anwender ned deine ganze H Datei druchforsten. finden schneller was sie suchen ... oder du schreibst halt gute Dokus :-)

Noch nen Hinweis:
_ als Praefix ist nicht ungefaehrlich, bei manchen compilern bekommst da schwierigkeiten ... hab ich irgendwo mal gelesen. Persoenlich hatte ich noch keine probs mit :-) Verwende die aber auch nicht :p

Noch nen Hinweis:
Statt direkte zuweisungen im Ctor lieber Initialisierungslisten verwenden ...
Deine Variablen aendern sich auch nie in der klasse, also mach sie const !!! (dann gehts eh nur ueber initialisierungsliste)


Beispiel wie es aussehen koennt ...


C++:
// Header: "Classes.h"

#include <string> // brauchen wir fuer die std::basic_string<> sache

tempate<class StringType = char>
class Scroller
{
private:
    typedef std::basic_string<StringType> String_t;
public:
    // Ctor mit parametern
    Scroller(int aX, int aX, int aValues, float aSize, const StringType * aName):
    mX(aX),
    mY(aY),
    mValues(aValues),
    mSize(aSize),
    mName(aName) // Ja das geht !!! :-)
    {
    }
    // CCtor mit parametern
    Scroller(const Scroller & rx):
    mX(rx.mX),
    mY(rx.mY),
    mValues(rx.mValues),
    mSize(rx.mSize),
    mName(rx.mName) // Ja das geht auch !!! :-)
    {
    }
    virtual ~Scroller() // destruktor lieber virtual, falls doch mal wer ableiten moechte ...
    {
        // dein destruktur braucht nun gar nix mehr zu tun, wird alles selbst erledigt
    }

    // Deine Getter
    int X() const           {return mX;}
    int Y() const           {return mY;}
    int Values() const    {return mValues;}
    float Size() const     {return mSize;}
    const StringType * Name()    {return mName.c_str();}
private:
    const int mX;
    const int mY;
    const int mValues;
    const float mSize;
    const String_t mName;
};


Include Guards nicht vergessen ! :p
Das waeren meine Vorschlaege .... zu deiner Scroller klasse ....
zu deinem container schreib ich spaeter noch was ....

Ciao ...

Dieser Post wurde am 01.04.2004 um 10:45 Uhr von RHBaum editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
01.04.2004, 22:02 Uhr
~RIP
Gast


Boa! Also durch die massenhaften Vorschläge muss ich mich erst mal durcharbeiten - ich verstehe vielleicht die Hälfte davon!
bloß gut das du (RHBaum) mal deine codevariante gepostet hast - sonst würde ich gar nicht durchblicken

Ich mache gerade meine Elektrikerlehre (3,5Jahre) ... noch 2,75 Jahre ... dannach würde ich auch gerne Fachinformatiker für Anwendungsentwicklung lernen - nur wenn ich mir andere Leute so anschaue (siehe Windalf oder mein Kumpel an der TUDresden) weiß ich nett ob ich da noch mitkomme - ich habe nur nen Realschulabschluß mit 2,2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
01.04.2004, 22:12 Uhr
~RIP
Gast


Scheiße ... das was ich fragen wollte hab ich ganz vergessen ...

Wie bekomme ich die Große des Arrays an einer späteren Stelle im code heraus, wenn ich die Variable "values" bereits gelöscht habe und ich diesen Wert auch nicht zwischenspeichern will? Es müsste normaler Weise irgendwie mit sizeof() gehen - nur ich bekomme da immer 4 - was der Größe EINES Floats entspricht??


C++:
float    *array;
array=new float[values];
memset(array,0,values*4);// initialisierte Floats 0 setzen ( 1 Float = 4 Byte)

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
01.04.2004, 22:27 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


nein geht nicht mit sizeof
du bekommst 4 weil das auf deiner plattform die grösse des floatpointers ist...
das mit sizeof(arraypointer)/sizeof(*arraypointer) als grösse des arrays klappt nur bei nicht dynamsich allokierten arrays (also bei variablen die du auf dem stack angelgt hast...

musst schon ne variable mit dir führen um dir die anzahl zu merken...
RHBaum will dir ja glaub ich noch ne templateklasse mit stl posten wo die anzahl dann automatisch mitgespeichert ist

C++:
memset(array,0,values*4);


ist nicht so gut weil du vorraussetzt das immer gilt das float 4 bytes hat das muss aber nicht so sein

besser ist also in deinem fall

C++:
memset(array,0,values*sizeof(float));





Zitat:

(siehe Windalf oder mein Kumpel an der TUDresden) weiß ich nett ob ich da noch mitkomme


wenn du ne ausbildung zum anwendungsentwickler machst wird von dir erstens nicht verlangt das du mit einem informatikstudenten mithalten kannst und zweitens wirst du nach der ausbildung programmiertechnisch wohl mindestens das niveau haben was ich jetzt habe (vielleicht halt von einigen mathematischen grundlagen abgesehen die man unter umständen nicht in der ausbildung lernt, die ja aber eigentlich auch nicht direkt was mit der programmierung zu tun haben) ob realschule oder nicht spielt keine rolle ich kenne auch jede menge mit abi die kaum was auf die reihe bekommen... das hat mehr was mit innerer einstellung und wollen zu tun als mit ich habe folgendes zertifikat... Die Leute die immer gross mit ihrem Titel winken sind meist die die sonst nichts können...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 01.04.2004 um 22:27 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: