Mange tak for hjælpen, det forklarede en del. Nu er jeg imidlertidig stødt ind i et nyt problem. Jeg har kastet mig over at lave et program der kan løse 2. grads ligninger og lave arrays af 2. grads ligninger. Problemet er som følger:
Jeg har deklareret en pointer til en klasse. Pointeren hedder parPoly, klassen hedder Poly og er en klasse der beskriver 2. grads ligninger.
Når man laver en (dynamisk i dette tilfælde) array af 2. gradsligninger (altså af klassen Poly) skulle pointeren gerne pege på denne array. Det er imidlertidig et problem når jeg initialiserer værdien af ligninger, for i denne proces bliver pointeren lavet om til klassen selv. Det er altså ikke længere en pointer til Poly, det er selv blevet en Poly. Koden ser således ud:
int main()
{
BOOL ExitState = FALSE;
float a=0,b=0,c=0;
int intAnswer;
int arSize = 0;
int i;
Poly * parPoly = 0;
for(;;)
{
cout << "\\n********Menu********\\n";
cout << "1: Create polynomials\\n";
cout << "2: Change polynomials\\n";
cout << "3: View current polynomials\\n";
cout << "4: Calculate real roots\\n";
cout << "5: Exit\\n";
cout << "Type function: ";
cin >> intAnswer;
cout << "\\n";
switch(intAnswer)
{
case 1:
cout << "\\nHow many polynomials do you wish to create?\\n";
cin >> arSize;
delete [] parPoly;
parPoly = new Poly[arSize];
for(i=0;i<arSize;i++)
{
cout << "Type the values for polynomial #" << i+1 << ": " ;
cout << "\\n a: ";
cin >> a;
cout << "\\n b: ";
cin >> b;
cout << "\\n c: ";
cin >> c;
parPoly[i ].SetValues(a,b,c);
}
cout << "\\n" << arSize << " polynomials have been created\\n";
continue;
....
Det er ikke noget stort problem, men jeg undrer mig bare hvorfor.
I øvrigt så undrer det mig hvorfor programmet udfører et uendeligt loop hvis man ved en fejl kommer til at skrive decimal tal med komma (,) i stedet for punktum (.).
[Redigeret d. 19/02-06 16:53:30 af noname]