Ich arbeite in Visual C++. Ich habe zwei CPP-Dateien in der gleichen Quelldatei. Wie kann ich auf eine andere Klassenfunktion (.cpp) in dieser Haupt-CPP zugreifen?Zugriff auf Mitgliedsfunktion einer anderen .cpp innerhalb derselben Quelldatei?
Antwort
Sie sollten Ihre Klasse in einer .h-Datei definieren, und Implementieren Sie es in einer CPP-Datei. Fügen Sie Ihre .h-Datei dann überall dort ein, wo Sie Ihre Klasse verwenden möchten.
Zum Beispiel
Datei use_me.h
#include <iostream>
class Use_me{
public: void echo(char c);
};
Datei use_me.cpp
#include "use_me.h" //use_me.h must be placed in the same directory as use_me.cpp
void Use_me::echo(char c){std::cout<<c<<std::endl;}
main.cpp
#include "use_me.h"//use_me.h must be in the same directory as main.cpp
int main(){
char c = 1;
Use_me use;
use.echo(c);
return 0;
}
Tom, kann ich auf Use_me-Funktion zugreifen, ohne Header-Datei zu erstellen ... – Rajakumar
Sicher können Sie. Kopieren Sie die 'Use_me'-Klassendeklaration und fügen Sie sie an Stelle der' # include'-Anweisungen in * main.cpp * und * use_me.cpp * ein. Das ist im Grunde das, was "# include" sowieso macht. Du wärst dumm, das zu tun, aber es ist sicherlich möglich. –
'use_me.h' ist nicht notwendig im gleichen Verzeichnis wie' main.cpp' zu liegen, da man es wie '#include
Sie sollten die Funktionsdeklarationen in eine .hpp-Datei und dann #include
in die main.cpp-Datei einfügen.
Zum Beispiel, wenn die Funktion Sie anrufen ist:
int foo(int bar)
{
return bar/2;
}
Sie brauchen eine foobar.hpp Datei mit diesem zu erstellen:
int foo(int bar);
und fügen Sie den folgenden auf alle CPP Dateien, die foo
nennen:
#include "foobar.hpp"
Ohne Header-Dateien zu erstellen. Verwenden Sie den Modifizierer extern
.
a.cpp
extern int sum (int a, int b);
int main()
{
int z = sum (2, 3);
return 0;
}
b.cpp
int sum(int a, int b)
{
return a + b;
}
einbinden kann Ich bin mir ziemlich sicher, dass Funktionen extern standardmäßig verlinkt sind . Sie brauchen nur extern auf Variablen. –
- 1. Zugang zwei CPP-Datei in derselben Quelldatei in vC++
- 2. Zugriff auf Instanzvariablen von einer Klasse innerhalb einer anderen Klasse
- 3. Zugriff auf die Qt UI von einer externen cpp-Datei
- 4. Zugriff auf einen aufgezählten Datentyp innerhalb einer anderen Klasse
- 5. Zugriff auf Variable von einer anderen Klasse
- 6. Zugriff auf Kreuztabellenformelfeld in einer anderen Kreuztabellenspalte?
- 7. Zugriff auf eine Variable innerhalb einer Rückruf
- 8. Zugriff auf private geschachtelte Klasse von Mitgliedsfunktion zurückgegeben
- 9. Zugriff auf TextBlock.Text innerhalb einer Schaltfläche
- 10. Zugriff auf private Variablen innerhalb einer Closure
- 11. Django: Zugriff auf Sitzungsvariablen innerhalb einer Vorlage?
- 12. Zugriff auf Variablen innerhalb einer Funktion
- 13. Zugriff auf statische Variablen innerhalb einer Funktion
- 14. Zugriff auf Eigenschaften innerhalb einer Node4j Collection
- 15. Zugriff auf .properties-Datei auf derselben Ebene wie Arbeitsverzeichnis
- 16. Zugriff auf die Einstellungen einer anderen Aktivität
- 17. Zugriff auf Listbox von einer anderen Klasse?
- 18. Zugriff auf Variablen in einer anderen Funktion
- 19. Zugriff auf Ergebnisse von einer anderen Methode
- 20. Zugriff auf Sitzung einer anderen Webanwendung
- 21. Zugriff auf Funktionen einer anderen Klasse
- 22. Kann nicht-statische Mitgliedsfunktion auf statische Mitgliedsfunktion oder Daten zugreifen?
- 23. Zugriff auf ein Objekt innerhalb eines anderen Objekts in meteor.js
- 24. Zugriff auf Wert in einem Ascx-Steuerelement in einem anderen Ascx-Steuerelement auf derselben Seite
- 25. Zugriff get_option innerhalb einer Klasse
- 26. Operatorüberladung (Freundes- und Mitgliedsfunktion)
- 27. C++ Zugriff auf meinen Vektor in einem anderen Headerfile und cpp
- 28. In derselben Zelle aus einer anderen Zelle
- 29. Django Zugriff auf die Länge einer Liste innerhalb einer Vorlage
- 30. Zugriff auf Variable aus dem Bereich einer anderen Funktion?
Könnten Sie bitte erklären, warum Sie wollen keine Header-Datei verwenden? Das könnte nützlich sein, um Ihnen bei Ihrem Problem zu helfen. –
Ich glaube nicht, dass er gesagt hat, dass er nicht will. Es sieht so aus, als wüsste er nicht wie * zu *. –