Sto lavorando in Visual C++. Ho due file .cpp nello stesso file sorgente. Come posso accedere ad un'altra funzione di classe (.cpp) in questo file .cpp principale?È possibile accedere alla funzione membro di un altro file .cpp all'interno dello stesso file sorgente?
risposta
è necessario definire la classe in un file .h, e implementalo in un file .cpp. Quindi, includi il tuo file .h ovunque tu voglia usare la tua classe.
Per esempio
file di use_me.h
#include <iostream>
class Use_me{
public: void echo(char c);
};
file di 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, posso accedere alla funzione use_me senza creare il file di intestazione ... – Rajakumar
Certo che puoi. Copia la dichiarazione della classe 'Use_me' e incollala al posto delle direttive' # include' in * main.cpp * e * use_me.cpp *. Questo è essenzialmente ciò che "# include" fa comunque. Saresti stupido a farlo, ma è certamente possibile farlo. –
'use_me.h' non è necessario essere nella stessa directory di' main.cpp' dato che puoi includerlo come '#include
È necessario inserire le dichiarazioni di funzione in un file .hpp, quindi #include
nel file main.cpp.
Per esempio, se la funzione che si sta chiamando è:
int foo(int bar)
{
return bar/2;
}
è necessario creare un file foobar.hpp con questo:
int foo(int bar);
e aggiungere quanto segue a tutti cpp file che chiamano foo
:
#include "foobar.hpp"
senza creare file di intestazione. Utilizzare il modificatore 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;
}
Sono quasi certo che le funzioni hanno il collegamento extern di default comunque . Hai solo bisogno di "estern" sulle variabili. –
- 1. È possibile utilizzare #define da un altro file cpp?
- 2. È possibile accedere ad altre funzioni di esportazione del modulo all'interno dello stesso file?
- 3. È possibile accedere a una variabile privata da un altro oggetto dello stesso tipo?
- 4. È possibile definire più classi in un solo file .cpp?
- 5. Incluso .cpp alla fine del file di intestazione del modello
- 6. È possibile accedere alla chiusura di una funzione?
- 7. Riferimento alla funzione membro?
- 8. Compresi i file .cpp
- 9. Posso accedere alla risorsa Javascript per caricarne un altro?
- 10. XCode non interrompe # include'd file CPP
- 11. È possibile aggiungere alla prima riga di un file esistente?
- 12. È possibile dichiarare la classe constexpr in un'intestazione e definirla in un file .cpp separato?
- 13. È possibile utilizzare la dimensione di un membro quando si dichiara un altro membro?
- 14. Riferimento non definito alla funzione non membro - C++
- 15. In che modo la compilazione dello stesso codice sorgente genera file oggetto diversi?
- 16. È necessario __declspec (dllexport) nei file cpp
- 17. Posso accedere alle variabili da un altro file?
- 18. Associazione alla funzione membro ereditato privatamente
- 19. Emacs: più viste dello stesso file
- 20. Come creare un gzip identico dello stesso file?
- 21. È sicuro accedere allo stesso file da più FileInputStream?
- 22. funzione e la classe nello stesso file: funzione non definita
- 23. Più classi in un file .cpp
- 24. Genera origine .cpp da un file .h
- 25. PowerShell: come creare una funzione come sorgente di un file?
- 26. È possibile scrivere su diverse parti dello stesso file da più thread?
- 27. Come è possibile accedere alla memoria di altri processi?
- 28. file è utilizzato da un altro processo
- 29. Creazione di file .cpp da file .h visual studio
- 30. java.nio.file.FileSystemException: il processo non può accedere al file perché è utilizzato da un altro processo
Potrebbe spiegare il motivo per cui non si desidera utilizzare un file di intestazione? Potrebbe essere utile per aiutarti con il tuo problema. –
Non penso che abbia detto che non vuole. Sembra che non sappia * come * a. –