Toon posts:

[BC6] Waar kan ik mijn eigen classes definieren?

Pagina: 1
Acties:
  • 45 views sinds 30-01-2008

Verwijderd

Topicstarter
Het probleem in onderstaande topic wordt veroorzaakt, doordat ik niet weet waar ik mijn eigen classes kan definieren.

[rml][ BC6] Global objects?[/rml]

De oplossing van het vorige en meer staat op de site hieronder:
http://gethelp.devx.com/techtips/cpp_pro/10min/10min0200.asp

C++:
1
2
3
4
5
6
7
8
9
10
11
class Singleton 
  {
  public:
      static Singleton* Instance();
  protected:
      Singleton();
      Singleton(const Singleton&);
      Singleton& operator= (const Singleton&);
  private:
      static Singleton* pinstance;
  };

Er zijn volgens mij twee plaatsen waar ik het zou kunnen neerzetten: in de headerfile of in de cpp file. Het zal wel de headerfile zijn, maar de reden daarvoor kan ik je niet geven. In JAVA zou ik dit wel kunnen, maar in C++ dus niet.

En ik weet ook niet of het wel nut heeft om extra classes aan te maken, omdat ik alleen maar in een functie die door BC6 wordt aangemaakt als je dubbelklikt op zo'n button, tekstvelden wil aanmaken(wat wel is gelukt) en dan als op een andere knop wordt gedrukt, de waarden beschikbaar zijn voor die knop. (wat nu dus niet zo is).

Onderstaande "code" is van Ericston en die doet precies wat ik wil. Maar ik weet dus niet hoe ik die aangemaakte ButtonClicked functies van BC6 daar in kan zetten.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class bla { 
private: 
    int array[5]; 
public: 
    void eenofanderemethode() { 
        // doe iets met array 
    } 

    void andere_methode() { 
        // doe weer iets met array 
    } 

    // hier nog wat anders 
};

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:58
Je class definitie schrijf je in de header file, de implementatie in de cpp file.

Hoe bedoel je , dat de waarden beschikbaar zijn voor die andere knop? Je kan toch die textvelden gaan overlopen en de waarden eruithalen?

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 02 December 2002 @ 15:29:
Hoe bedoel je , dat de waarden beschikbaar zijn voor die andere knop? Je kan toch die textvelden gaan overlopen en de waarden eruithalen?
Dat kan dus niet. Hij ziet ze niet, omdat ze in de ene functie worden aangemaakt.

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:58
Als je die textvelden maakt, dan zet je ze toch op een form? Die staan dan in de Controls array oid.

https://fgheysels.github.io/


Verwijderd

Topicstarter
ik kan in de functie waar ik ze aanmaak de waarden ophalen met tekstveld[i] met i is 1...n
met n<5 (meer heb ik er niet) . Als ik dan hetzelfde in de andere functie neerzet, weet hij te vertellen dat die waarden undefined zijn of undeclared. In ieder geval: ze vallen buiten de scope.

Verwijderd

Als je iets uit een class wilt halen, zul je daar een interface voor moeten maken. Denk daar eerst eens over na, zou toch een van de eerste stappen moeten zijn als je een class verzint: de interface? Daarna pas de implementatie e.d. Via de interface moeten waarden dan vervolgens gewoon beschikbaar kunnen zijn, indien gewensd.

volgens mij, als je een object globaal wilt maken,kun je deze in een sourcefile buiten een functie declareren, en in een globale headerfile als "extern MyClass naampje;" zetten. Daaraan moet dan wel eerst de class-definitie voorafgaan...

[ Voor 27% gewijzigd door Verwijderd op 02-12-2002 15:45 ]


Verwijderd

Topicstarter
Verwijderd schreef op 02 December 2002 @ 15:38:
Als je iets uit een class wilt halen, zul je daar een interface voor moeten maken. Denk daar eerst eens over na, zou toch een van de eerste stappen moeten zijn als je een class verzint: de interface? Daarna pas de implementatie e.d. Via de interface moeten waarden dan vervolgens gewoon beschikbaar kunnen zijn, indien gewensd.
Het probleem is dus dat bovenstaande mij niets zegt. In JAVA kun je gewoon op een hoger niveau je dingen declareren. Kun je dat misschien concreet (met code) toelichten?

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:58
Verwijderd schreef op 02 december 2002 @ 15:41:
[...]

Het probleem is dus dat bovenstaande mij niets zegt. In JAVA kun je gewoon op een hoger niveau je dingen declareren. Kun je dat misschien concreet (met code) toelichten?


Misschien wordt het eerst eens tijd voor een C++ boekje.

https://fgheysels.github.io/


Verwijderd

Ik sluit me aan bij whoami, als het begrip "interface" je al niets zegt, dan mis je echt al een hoop basic stuff! Dan moet je echt eerst eens het e.a. gaan lezen, in de FAQ staan wat links om je op weg te helpen, of kijk bij Thinking in C++, die kan je waarschijnlijk ook goed op weg helpen.

[ Voor 17% gewijzigd door Verwijderd op 02-12-2002 15:52 ]


Verwijderd

Topicstarter
Als ik een stukje voorbeeldcode zie, dan snap ik het waarschijnlijk wel. DeZaffiro gaf een erg algemeen antwoord. Nu is er iets langer over nadenk is dat interface gebeuren, net zo iets als in java de init() functie.

Gaat dat boek ook over C++ in combinatie Borland ?

[ Voor 12% gewijzigd door Verwijderd op 02-12-2002 15:51 ]


Verwijderd

Verwijderd schreef op 02 December 2002 @ 15:50:
Gaat dat boek ook over C++ in combinatie Borland ?
Nee, gaat enkel over C++, maar die basis zul je wel nodig hebben, voordat je uberhaupt BCB specifieke dingen gaat doen. Eerst de taal zelf leren.

En dan kom je d'r ook vanzelf achter wat een interface (wel) is...

Verwijderd

Topicstarter
De interface is volgens mij gewoon het gezicht van de applicatie: dus alles waar de gebruiker op kan drukken. Je heb took interfaces achter op een computer: de males en femalen enz. Wat versta jij dan onder een interface?

[ Voor 3% gewijzigd door Verwijderd op 02-12-2002 16:21 ]


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 10:04

mulder

ik spuug op het trottoir

Dat is een GUI. Interface is het 'gezicht' van de class simpel gezegt.

oogjes open, snaveltjes dicht


Verwijderd

Verwijderd schreef op 02 December 2002 @ 16:06:
De interface is gewoon het gezicht van de applicatie: dus alles waar de gebruiker op kan drukken. Je heb took interfaces achter op een computer: de males en femalen enz. Wat versta jij dan onder een interface?
Ligt aan je objectdefinities. Een van de interfaces van een computer-object zou de compoort kunnen zijn, en van een grafisch object zou je een button als interface kunnen hebben...

Lees nu eerst maar eens het e.a. over C++ en "Object Oriented Design". Bijvoorbeeld hoofdstuk 1 van eerdergenoemde link naar TIC++, die kun je gewoon gratis downloaden en bekijken...

[ Voor 7% gewijzigd door Verwijderd op 02-12-2002 16:25 . Reden: typo's ]


Verwijderd

Topicstarter
Verwijderd schreef op 02 December 2002 @ 16:21:
[...]

Lees nu eerst maar eens het e.e.a. over C++ en "Object Oriented Design". Bijvoorbeeld hoofdstuk 1 van de TIC++, die kun je gewoon gratis downloaden en bekijken...
Ja meester (8>

Verwijderd

(Dan ken je de echte meesters nog niet _/-\o_ )

Java is trouwens toch ook object-georiënteerd :? Hoe heb je tot nog toe zo ver kunnen komen zonder OO kennis? (of is jouw kennis een persoon ;) )

Verwijderd

Topicstarter
Ik heb wel OO kennis. Voor de laatste 2 opdrachten op http://www.cs.uu.nl/docs/vakken/imp-1/ had ik een 10 en een 10. De laatste opdracht is zeker object-georienteerd. Ik gebruik trouwens alleen objecten als dat nuttig is, maar geloof me, in mijn programma zijn zelfgemaakte objecten niet nuttig.

[ Voor 3% gewijzigd door Verwijderd op 02-12-2002 16:59 ]


Verwijderd

Niet een opdracht/probleem, maar een benadering, oplossing en/of gekozen implementatie is OO (of niet)... D'r is in die zin niets OO achtigs aan dat "laatste probleem", die 10 zegt in die zin niets, zry :/

Maar ik zou je boeken d'r toch nog eens op na gaan lezen w.b.t. een "interface", zoek eens in de buurt van "methoden" (daar bestaat de interface namelijk uit, maar dat had je inmiddels al gelezen, toch... O-) ;) )

[ Voor 22% gewijzigd door Verwijderd op 02-12-2002 17:28 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:58
Begin nu maar eerst eens met een C++ boek, zorg dat je C++ (de taal dan) onder de knie krijgt, zorg ervoor dat je OO kent, en begin dan pas met C++ Builder.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.