Linker Error

Sek77

Grünschnabel
C++Linker Error

Hallo, ich habe mit zu Übungszwecken ein kleines Programm gebastelt.
Code:
//login.cpp
#include <conio.h>
#include <iostream.h>
#include <stdio.h>

char x[8];
int loginc(char);
int pwc(char);
void zugangc(int);
void ziel (void);
void access_denied(void);

void main()
{
	clrscr();
	int lo;
	int pa;
	char li[8];
	char pw[8];
	cout <<"bitte geben sie ihren login namen ein\n";
	gets (li);
	x[8]=li[8];
	lo=loginc(li[8]);
	cout <<"bitte ihr zugangspasswort eingeben\n";
	gets(pw);
	pa=pwc(pw[8]);
	int A=(lo*pa)+1 ;
	zugangc(A);

}
int loginc(char a[8])
{
	if(a[8]==9) 
	{
		a[8]='2';
		a[8]=(int)(a[8]-'0');
		
	}

	return(a[8]);
}

int pwc(char a[8])
{
	if(a[8] ==9)
	{
		a[8]='3';
		a[8]=(int)(a[8]-'0');
		
	}
	return(a[8]);
}

void zugangc(int A) 
{
	if(A==7)
	{
		ziel();
	}
	if(A!=7)
	{
		access_denied();
	}
}


void ziel(void)
{
	cout<< "Hallo mr. "<< x;
	getch();
}
void access_denied(void)
{
	cout<< " access denied ";
	getch();
}
Der Compiler zeigt mit keinen syntax Fehler an aber wenn ich das Programm starten will, bekomme ich folgende Linker Errors:

-Undefined symbol loginc(char) in modul login.cpp
-Undefined symbol pwc(char) in modul login.cpp

Desweiteren muss ich sagen, dass ich noch ein blutiger Anfänger bin. C++ ist meine erste Programmiersprache und ich beschäftige mich erst seit ca 1 Monat mit Ihr.

//edit
 
Zuletzt bearbeitet:
Der Linker bringt dir normal dann Fehler, wenn
- entweder Funktionen (oder Variablen) deklariert, benutzt, aber nicht definiert (implementiert) wurden
- oder Funktionen (Variablen) doppelt definiert / implementiert wurden


Bei dir ist ersteres Problem der Fall:

Die Deklaration deiner Funktionen oben weicht von der Definition der Funktionen unten ab.
Darum erkennt der Compiler die Definition als Überladung deiner Funktion, nicht als Definition der oben deklarierten Funktion. Er erstellt eine neue Funktion..
Folglich wird die oben deklarierte Funktion nicht definiert.
Das ist das Problem.

Lösung: Deklaration und Definition angleichen (Parameterliste)
"char [8]" und "char" sind bspw. verschiedene Datentypen...
 
Zurück