| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen | 
	
	
		| Autor | Nachricht | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 29.12.2005, 23:19    Titel: Kann man Funktionen mit typedef Typen überladen? |   |  
				| 
 |  
				|  	  | CPP: |  	  | typedef int Typ1; typedef int Typ2;
 
 int Funktion(Typ1 Var);
 int Funktion(Typ2 Var);
 
 | 
 
 Kanns sein das das net geht? Bei mir jedenfalls schienbar net.
 
 [edit]Tippfehler im Code verbessert[/edit]
 _________________
 https://jonathank.de/games/
 
 Zuletzt bearbeitet von Jonathan_Klein am 30.12.2005, 12:28, insgesamt 2-mal bearbeitet
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| DirectXer Dark JLI'ler
 
  
 
 Anmeldedatum: 05.02.2005
 Beiträge: 1201
 Wohnort: Köln
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 29.12.2005, 23:43    Titel: |   |  
				| 
 |  
				| komisch, normalerweise geht das. Kannst du in tausenden WinAPI-Funktionen sehen. Hier mal ein Beispiel, das 100%ig geht(is net von mir, is aus nem Buch ein Beispiel): 
  	  | CPP: |  	  | #include <iostream> typedef unsigned short USHORT;
 typedef unsigned long ULONG;
 
 ULONG GetPower(USHORT n, USHORT power);
 
 int main()
 {
 USHORT number, power;
 ULONG answer;
 
 cout << "Geben Sie eine Zahl ein: ";
 cin >> number;
 cout << "Zu welcher Potenz? ";
 cin >> power;   answer = GetPower(number,power);
 cout << number << " hoch " << power << "ist gleich " << answer << endl;
 
 return 0;
 }
 
 ULONG GetPower(USHORT n, USHORT power)
 {
 if(power == 1)
 return n;
 else
 return (n * GetPower(n,power-1));
 }
 | 
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| The Lord of Programming Living Legend
 
  
 Alter: 38
 Anmeldedatum: 14.03.2003
 Beiträge: 3122
 
 Medaillen: Keine
 
 
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OLiver Super JLI'ler
 
  
 Alter: 34
 Anmeldedatum: 29.06.2003
 Beiträge: 306
 Wohnort: Jena
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 09:33    Titel: |   |  
				| 
 |  
				| Fehlt bei Funktin noch ein o oder ist das absichtlich? Falls eins fehlt, wärs ja mehrdeutig. _________________
 http://www.sieder25.org/ (Siedler 2 - Remake)
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| DirectXer Dark JLI'ler
 
  
 
 Anmeldedatum: 05.02.2005
 Beiträge: 1201
 Wohnort: Köln
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 10:23    Titel: Re: Kann man Funktionen mit typedef Typen überladen? |   |  
				| 
 |  
				|  	  | Jonathan_Klein hat Folgendes geschrieben: |  	  |  	  | CPP: |  	  | typedef int Typ1; typedef int Typ2;
 
 int Funktion(Typ1 Var);
 int Funktin(Typ2 Var);
 
 | 
 
 | 
 
 Jo, Oliver hat schon recht. Wenn bei der Funktion ein "o" fehlen würde, also das so hieß:
 
  	  | CPP: |  	  | int Funktion(Typ1 Var); int Funktion(Typ2 Var);
 | 
 Dann wäre klar warum das net geht, da du 2 gleiche Funktionen hast und beide (int) als Parameter haben. Ich geh aber mal davon aus, dass das nur ein Beispiel von dir war, oder?
 
 DirectXer
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 12:28    Titel: |   |  
				| 
 |  
				| ja so soltle es sein. Die haben ja ursprüngliche beide int als Parameter, aber durch die typedefs sollten es ja unterschiedliche Typen sein. Wenn noch nciht mal das geht, wären typedefs doch n bissle sinnlos, oder? _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OLiver Super JLI'ler
 
  
 Alter: 34
 Anmeldedatum: 29.06.2003
 Beiträge: 306
 Wohnort: Jena
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 12:38    Titel: |   |  
				| 
 |  
				|  	  | Jonathan_Klein hat Folgendes geschrieben: |  	  | ja so soltle es sein. Die haben ja ursprüngliche beide int als Parameter, aber durch die typedefs sollten es ja unterschiedliche Typen sein. Wenn noch nciht mal das geht, wären typedefs doch n bissle sinnlos, oder? | 
 
 Wer sagt, dass typedefs dafür gemacht worden sind?
 Was stellst du dir vor, soll der Compiler aufrufen, wenn du
 
 
  	  | CPP: |  	  | int a = 234234; Funktion(a);
 
 | 
 
 schreibst? Das wäre mehrdeutig.
 _________________
 http://www.sieder25.org/ (Siedler 2 - Remake)
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 12:59    Titel: |   |  
				| 
 |  
				| Dann soll der mir sagen, das es keine funktin gibt die int als Parameter erwartet. Mir schient die einzige Lösugn wäre es zu schreiben: 
  	  | CPP: |  	  | struct Typ1 {
 int var;
 }
 
 struct Typ2
 {
 int Var:
 }
 
 Funktion(Typ1 var);
 Funktion(Typ2 var);
 
 | 
 aber das ist meiner Meinung nach bissle unschön.
 _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OLiver Super JLI'ler
 
  
 Alter: 34
 Anmeldedatum: 29.06.2003
 Beiträge: 306
 Wohnort: Jena
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 13:44    Titel: |   |  
				| 
 |  
				|  	  | Zitat: |  	  | Dann soll der mir sagen, das es keine funktin gibt die int als Parameter erwartet.
 
 | 
 
 Der erkennt das aber automatisch.
 Was soll das Ganze überhaupt für einen Sinn haben?
  _________________
 http://www.sieder25.org/ (Siedler 2 - Remake)
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| DirectXer Dark JLI'ler
 
  
 
 Anmeldedatum: 05.02.2005
 Beiträge: 1201
 Wohnort: Köln
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 14:02    Titel: |   |  
				| 
 |  
				| ^^ das kann doch net gehen, jonathan   
 warte, stell dir das so vor: typedef ist mehr oder weniger ein Update für #defines, was sich der Typen widmet. Früher, als es noch kein typedef gab, wurden alle neuen Typen per #define definiert. So würde der Präprozesssor eben alle entsprechenden Namen vor dem Compilieren durch die Typen ersetzen. Jetz mal dir das ma in deinem Code aus
    	  | CPP: |  	  | int Funktion (int Typ1); int Funktion (int Typ2);
 | 
 und? geht net. typedef wurde nur u. A. deswegen entwickelt, weil die #define Sachen dafür net geeignet waren(wurde schon oft genug im Forum erläutert, warum). Vom Prinzip her ist es aber ähnlich.
   
 Gruß DirectXer
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 14:42    Titel: |   |  
				| 
 |  
				| das es mit defines net gehen kann, war mir klar. Ich dachte nur, da typedefs n update darstellen, hätte das durchaus mal funktionierne können. Sehr schade, dass das leider nicht funktioniert. _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| GreveN JLI Master
 
  
 Alter: 38
 Anmeldedatum: 08.01.2004
 Beiträge: 901
 Wohnort: Sachsen - Dresden
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 17:13    Titel: |   |  
				| 
 |  
				| Ich würde 'typedefs' auf keinen Fall als Update von 'define' betrachten. Typedef erzeugt eigene Typen, define arbeitet mittels Textersetzung, das ist der Grund, warum ich rein aus dem Bauchgefühl heraus gesagt hätte, es müsste gehen. Hast du mal C programmiert? Wie legst du da z.B. Strukturen ohne typedef an? 
 Btw.: 500. Posting die 2.
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| PeaceKiller JLI Master
 
  
 Alter: 36
 Anmeldedatum: 28.11.2002
 Beiträge: 970
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 17:35    Titel: |   |  
				| 
 |  
				| In C++ sind typedefs zu schwach für sowas. Compilerintern sind sie immernoch derselbe Typ wie der ursprüngliche Typ. _________________
 »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
 – Robert X. Cringely, InfoWorld magazine
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| DirectXer Dark JLI'ler
 
  
 
 Anmeldedatum: 05.02.2005
 Beiträge: 1201
 Wohnort: Köln
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.12.2005, 21:24    Titel: |   |  
				| 
 |  
				|  	  | GreveN hat Folgendes geschrieben: |  	  | Ich würde 'typedefs' auf keinen Fall als Update von 'define' betrachten. Typedef erzeugt eigene Typen, define arbeitet mittels Textersetzung, das ist der Grund, warum ich rein aus dem Bauchgefühl heraus gesagt hätte, es müsste gehen. Hast du mal C programmiert? Wie legst du da z.B. Strukturen ohne typedef an? 
 Btw.: 500. Posting die 2.
  | 
 bezog sich die Frage auf mich? Naja, ich hab net behauptet, dass typedef ein Update für define wäre, ich hab nur gesagt, dass man das sich am Anfang so vorstellen könnte. Dann kann man die Einschränkungen besser nachvollziehen
   
 Gruß DirectXer
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Patrick Dark JLI Master
 
  
 
 Anmeldedatum: 25.10.2004
 Beiträge: 1895
 Wohnort: Düren
 Medaillen: Keine
 
 
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		|  |