webForumDet fria alternativet

Identifier "Prev" is undefined.

1 svar · 629 visningar · startad av SilvioF

SilvioFMedlem sedan juni 2000585 inlägg
#1

Jag har en class som heter Car som fixar ser ut så här:

class Car
{
public:
	Car* PreviousCar;
	Car* NextCar;
	char LicensePlate[10]; // Licenseplate of the car, used as unique identifier

	// Date and time of arrival to the garage
	char ArrivalDate[9];
	char ArrivalTime[9];
		// Date and time of departure from the garage
	char DepartureDate[9];
	char DepartureTime[9];

Lite senare har jag en funktion som ser ut så här:

void RemoveCar() // A car departs from the garage
{
	cout << "Enter licence plate number: ";
	char LicPlate[10];
	cin >> LicPlate;
	Car* C = FirstCar;
	bool carDeleted = false;
	while(C != 0)
	{
		if(strcmp(C->LicensePlate, LicPlate) == 0)
		{
			[B]C* Prev = C->PreviousCar;
			C* Next = C->NextCar;[/B]
			if(Prev != 0)
			{
				Prev->NextCar = C->NextCar;
			}
			if(Next != 0)
			{
				Next->PreviousCar = C->PreviousCar;
			}
			if(FirstCar == C)
			{
				FirstCar = Next;
			}
			delete C;
			C = 0;
			carDeleted = true;
		}
		else
		{
			C = C->NextCar;
		}
	}
	if(carDeleted != true)
	{
		cout << "Could not remove car with licence plate numer \"" << LicPlate << "\", ar not found in database!" << endl;
	}
}

Jag får felmeddelande om att "Prev" och "Next" i funktionen "RemoveCar" är odefinierade (fet text).
Saken är den att jag har i stort sett tagit fungerande kod och döpt om klasser, variabler och funktionsnamn. Innan jag gjorde dessa ändringar av namn på saker och ting så fungerade allting utmärkt.

Det skall tilläggas att jag fortfarande är väldigt ny på C++ och har lite för mycket VB-tänk kvar. :l

Någon som har tips på lösning och gärna en förklaring till vad som är fel (undervisning och konstruktiv kritik är aldrig fel). :)

msossnaMedlem sedan feb. 2002279 inlägg
#2

Borde de inte stå:

Car* Prev = C->PreviousCar;
Car* Next = C->NextCar;
Genererad på 368 ms · cache AV · v20260730165559-full.f96bc7eb