Toon posts:

Array van classes? (visual c++)

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

Verwijderd

Topicstarter
Ik heb een array aangemaakt:


char ReaderArray[10];


In een methode wil ik het volgende met die array doen:


this->Reader02 = vtkDataSetReader::New();
this->Reader02->SetFileName(lpszPathName);
ReaderArray[a] = this->Reader02;


Maar hij geeft dan de volgende error als ik compile:


C:\vtk\Examples\GUI\Win32\SampleMFC\SampleDoc.cpp(142) : error C2440: '=' : cannot convert from 'class vtkDataSetReader *' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
Error executing cl.exe.


Is er een mogelijkheid om een array van classes te maken, zoniet, hoe moet ik dan op de juiste manier casten?

BVD

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Waarom declareer je in godesnaam de array van het type char ipv je klasse die je wilt opslaan?

Verwijderd

Topicstarter
Dat zal dan idd het probleem zijn, maar ik weet niet hoe ik het anders moet doen... Ben hier op stage bezig en heb eigenlijk totaal geen ervaring met c++.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Ik vermoed ten eerste een design probleem. Wat is je design? Wat zijn je readers, en hoe verhouden ze zich tot andere objecten? Wie is de eigenaar, wie de gebruiker, welke objecten heeft een reader nodig om te werken?

Daarna kunnen we naar C++ kijken, maar nu lijkt dat nog niet aan de orde.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Count
  • Registratie: Augustus 2000
  • Laatst online: 10-08-2023
Wil je een statische array of een dynamische? dwz; staat de lengte van de array vast of niet?

Zo ja:
code:
1
2
3
4
5
6
7
8
9
vtkDataSetReader *reader[10];
for(int i = 0; i < 10; i++){ 
    reader[i] = vtkDataSetReader::New();
}

// na gebruik:
for(int i = 0; i < lengte; i++){ 
    delete reader[i];
}


Zo nee:
code:
1
2
3
4
5
6
7
8
9
10
11
12
int lengte = (Vul hier getal in);
vtkDataSetReader **reader;
reader = new vtkDataSetReader*[lengte];
for(int i = 0; i < lengte; i++){ 
    reader[i] = vtkDataSetReader::New();
}

// na gebruik:
for(int i = 0; i < lengte; i++){ 
    delete reader[i];
}
delete [] reader;


Veel succes met VTK verder, ik heb er ook het laatste half jaar mee gewerkt tijdens mijn afstudeerproject en ik vond het iig erg goed.

Great minds think in parallel gutters.


Verwijderd

Ik geef maar even een heel kort voorbeeld van zo'n array:

C++:
1
2
3
4
5
6
7
8
9
10
class Koe {
  Koe();
}
[...]
void eenfunctie() {
  Koe* mijnArray = new Koe[10]
  for(int I = 0; I < 10; I++) {
    mijnArray[I] = new Koe();
  }
}

Nu heb je 'n arraytje met objecten :)
(dit is volgens mij wat je wou weten of niet?)

Verwijderd

Topicstarter
Bedankt mensen, ik ga hier nu ff verder mee 'kloten'!

  • Opi
  • Registratie: Maart 2002
  • Niet online

Opi

Nofi 2 grijsaard, maar is het niet handiger als je je eerst een beetje inleest alvorens je het diepen induikt? Een paar uur geleden had je ook al moeite met het aanmaken van een array (je leert wel snel trouwens :)).

Verwijderd

Topicstarter
klopt, maar dan moeten ze hier wel een goede documentatie hebben over c++ en dat hebben ze hier in dit bedrijf niet. En op internet vind ik gek genoeg alleen maar onbruikbare dingen.

Tevens ben ik een persoon dat sneller leert uit de juiste voorbeeldjes dan uit lappen met tekst.

nogmaals bedankt

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 14 July 2003 @ 12:50:
klopt, maar dan moeten ze hier wel een goede documentatie hebben over c++ en dat hebben ze hier in dit bedrijf niet. En op internet vind ik gek genoeg alleen maar onbruikbare dingen.
Vraag dan of je een boek mag kopen van ze over C++ zodat je een beetje weet waar je mee bezig bent. Voor ons heeft het geen zin om allerlei basic dingentjes uit te gaan leggen die je eigenlijk had moeten beheersen :) Daar is GoT gewoon niet voor bedoeld :)

Verwijderd

Topicstarter
Is dit dan zo basic?

ok een array aanmaken misschien wel, maar met vtk erbij denk ik dat het het punt van basic toch voorbij is...?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Hoezo? Welk deel van VTK gebruik je dan? Ik zie alleen het aanmaken van een array van een object :)

Verwijderd

Verwijderd schreef op 14 July 2003 @ 13:08:
Is dit dan zo basic?

ok een array aanmaken misschien wel, maar met vtk erbij denk ik dat het het punt van basic toch voorbij is...?
Yups,
maar je laat duidelijk merken dat *jouw* probleem is dat je geen flauw benul hebt waar je mee bezig bent.
Eerst leren kruipen voordat je gaat proberen te lopen :)

Edit:
Je probeert iets van een of ander type op te slaan in een array van karakters.
Da gaat dus alleen werken als hetgene wat je probeert op te slaan dus een karakter is.

(Een array maken van lollies en daar vervolgens een fietspomp in proberen te stoppen werkt niet zo goed)

[ Voor 26% gewijzigd door Verwijderd op 14-07-2003 13:19 ]


Verwijderd

Topicstarter
Dat van die fietspomp en die lollies had ik wel door, wist alleen niet hoe ik een array van fietspompen moest maken. :D

Verwijderd

lollie almijnlollies[10];
of
lollie * almijnlollies[10];


fietspomp almijnfietspompen[4];
of
fietspomp * almijnfietspompen[4];


Ik hoop dat je weet hoe pointers en dynamische geheugenallocatie werken,
ander ga je way over your head.... en kan je dus beter eerst leren hoe dat werkt.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Led dynamisch geheugen alloceren in een 'unsafe' taal als C++ vind ik een heel klein beetje eng voor de TS in dit stadium :)

Lijkt me dat hierover wel genoeg besproken is :) Veel succes met het leren van C++ grijsaard en probeer eerst de basics van de taal even door te krijgen voordat je _echt_ aan het werk slaat met VTK :)
Pagina: 1

Dit topic is gesloten.