tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
400
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Dec 2009
    Beiträge
    21
    Hallo,

    ich muss eine Aufgabe lösen, bei der ich leider nicht weiter komme.
    Es geht darum eine cpp Datei mit einer Methode ( ohne Klasse) von einer anderen cpp Datei aufzurufen ( aus der Main methode heraus)


    Ich darf dabei kein include benutzen. Jetzt Frage ich mich wie das funktionieren soll? In Java wäre das ganz einfach gegangen wenn die Datei im gleichen Package liegt aber mit C++ ist das ja nicht möglich.

    Könnt ihr mir auf die Sprünge helfen?
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Hallo,

    ein #include macht nichts anderes, als den Inhalt der inkludierten Datei einzubinden. Das kannst du auch per Hand machen, indem du den Inhalt der Headerdatei an die Stelle kopierst, an der du das #include schreiben würdest.

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    Avatar von Jennesta
    Jennesta Jennesta ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Aachen
    Beiträge
    215
    Wenn du kein include benutzen sollst, dann wäre "extern" etwas für dich.
    mit
    Code cpp:
    1
    
    extern void function(int param1);
    einfach in der main bekanntmachen.
     
    Was soll daran kompliziert sein? Es muss doch nur ein Rad bewegt werden, man kann aufsteigen, es kommt die Matschhütte und durch den Regenbogen gelangst du zum hungrigen Affen, der Affenschwanz wird gezogen und bums kommst du zum Paradispark.

  4. #4
    Registriert seit
    Dec 2009
    Beiträge
    21
    das hatte ich noch vergessen zu sagen, es gibt keine header Datei. Und die Signatur der Methode in die Main zu kopieren wird ja auch nicht klappen weil er dann die Implementierung nicht findet?

    argh es geht ja doch einfach die Signatur also das was man im Header schreiben würde in der Main bzw Main Header schreiben THX!
    Geändert von takethedogforawalk (16.11.11 um 18:53 Uhr)
     

  5. #5
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Zitat Zitat von Jennesta Beitrag anzeigen
    Wenn du kein include benutzen sollst, dann wäre "extern" etwas für dich.
    mit
    Code cpp:
    1
    
    extern void function(int param1);
    einfach in der main bekanntmachen.
    Das ist zwar nicht falsch, aber das extern ist unnötig. Funktionen haben automatisch externe Bindung.

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  6. #6
    Avatar von Jennesta
    Jennesta Jennesta ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Aachen
    Beiträge
    215
    Zitat Zitat von Matthias Reitinger Beitrag anzeigen
    Das ist zwar nicht falsch, aber das extern ist unnötig. Funktionen haben automatisch externe Bindung.

    Grüße,
    Matthias
    Dann war extern nur für Variablen notwendig, oder?
     
    Was soll daran kompliziert sein? Es muss doch nur ein Rad bewegt werden, man kann aufsteigen, es kommt die Matschhütte und durch den Regenbogen gelangst du zum hungrigen Affen, der Affenschwanz wird gezogen und bums kommst du zum Paradispark.

  7. #7
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Zitat Zitat von Jennesta Beitrag anzeigen
    Dann war extern nur für Variablen notwendig, oder?
    Nein, auch globale Variablen und Variablen in Namespaces sind automatisch extern. Einzige Ausnahme: const-Variablen sind standardmäßig static.

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  8. #8
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Eigentlich hat Jennesta aber Recht. Um eine Variable aus einem anderen Modul zu benutzen muß man diese mit dem Schlüsselwort "extern" versehen um zu verhindern das eine neue Variable definiert wird.

    Die Variable in dem anderen Modul muss natürlich externe Bindung haben um überhaupt "von Außen" zugreifbar zu sein.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Methoden anderer Klassen zugreifen
    Von fei-d im Forum Java
    Antworten: 2
    Letzter Beitrag: 16.05.10, 12:29
  2. Antworten: 7
    Letzter Beitrag: 02.02.09, 17:55
  3. Oop: Zugriff auf Methoden anderer Klassen?
    Von SuReBuRn im Forum PHP
    Antworten: 9
    Letzter Beitrag: 21.12.06, 20:25
  4. Antworten: 4
    Letzter Beitrag: 11.11.06, 15:19
  5. Zugriff auf Methoden anderer Klassen?
    Von Skiron im Forum .NET Archiv
    Antworten: 6
    Letzter Beitrag: 23.07.04, 14:28