Pracuję w Visual C++. Mam dwa pliki .cpp w tym samym pliku źródłowym. Jak uzyskać dostęp do innej funkcji klasy (.cpp) w tym głównym pliku .cpp?Dostęp do funkcji członka innego pliku .cpp w obrębie tego samego pliku źródłowego?
Odpowiedz
należy zdefiniować swoją klasę w pliku .h, a zaimplementuj go w pliku .cpp. Następnie dołącz plik .h wszędzie tam, gdzie chcesz używać swojej klasy.
Na przykład
plik use_me.h
#include <iostream>
class Use_me{
public: void echo(char c);
};
plik 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, Czy mogę uzyskać dostęp do funkcji use_me bez tworzenia pliku nagłówkowego ... – Rajakumar
Oczywiście. Skopiuj deklarację klasy "Use_me" i wklej ją zamiast dyrektyw '# include' w * main.cpp * i * use_me.cpp *. Zasadniczo to co robi '# include'. Byłbyś głupi, że to robisz, ale na pewno można to zrobić. –
'use_me.h' nie jest konieczny będąc w tym samym katalogu co' main.cpp', ponieważ możesz go dołączyć jak '#include
Powinieneś umieścić deklaracje funkcji w pliku .hpp, a następnie #include
w pliku main.cpp.
Na przykład, jeśli funkcja dzwonisz jest:
int foo(int bar)
{
return bar/2;
}
trzeba utworzyć plik foobar.hpp z tym:
int foo(int bar);
i dodać następujące wszystkich .cpp pliki, które wymagają foo
:
#include "foobar.hpp"
bez tworzenia plików nagłówkowych. Użyj modyfikatora 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;
}
Jestem całkiem pewny, że funkcje mają domyślnie linkowanie mimo wszystko . Potrzebujesz tylko "extern" na zmiennych. –
- 1. Dostęp Muti do tego samego pliku tekstowego
- 2. Python wielu wątków uzyskujących dostęp do tego samego pliku
- 3. Czytaj w pliku - zmień zawartość - zapisz do tego samego pliku
- 4. Jak dołączyć moduł z innego pliku z tego samego projektu?
- 5. Odczytywanie i zapisywanie do tego samego pliku przy użyciu tego samego pliku fstream
- 6. Blokowanie słownika w obrębie tego samego wątku
- 7. Powrót do tego samego pliku po przeczytaniu z pliku
- 8. Wywołanie funkcji członka w obrębie głównego C++
- 9. Wywołanie funkcji w jednym pliku JavaScript z innego pliku JavaScript?
- 10. Wiele wątków czytających z tego samego pliku
- 11. Emacs: wiele widoków tego samego pliku
- 12. Java - Pobieranie pliku z tego samego pakietu
- 13. Narzędzie do parsowania źródła C++ i przenoszenia metod inline w nagłówku do pliku źródłowego .cpp?
- 14. Użyj tego samego pliku statycznego do wielu aplikacji w Django
- 15. Importowanie funkcji z klasy do innego pliku?
- 16. Użycie zmiennej łańcuchowej pliku make w pliku CPP
- 17. Python dla początkujących: czytanie i pisanie do tego samego pliku
- 18. Python: oddzielne procesy logowania do tego samego pliku?
- 19. Android.mk - kompilacja całego pliku źródłowego w katalogu
- 20. python - dołączanie do tego samego pliku z wielu wątków
- 21. Czy można użyć #define z innego pliku cpp?
- 22. Czy definicja funkcji wbudowanych w C++ musi należeć do tego samego pliku?
- 23. Czy bezpieczny jest dostęp do tego samego pliku przez kilka FileInputStream?
- 24. C++ Dostęp do tego w nowej funkcji Składnia deklaratora funkcji
- 25. Czy każde żądanie uzyskuje dostęp do tego samego obiektu serwletu?
- 26. Używanie tego samego pliku dla stdin i stdout z przekierowaniem
- 27. Jakie metody umożliwiają dostęp do kodu źródłowego?
- 28. Parsowanie i ładne drukowanie tego samego formatu pliku w Haskell
- 29. Jak zdefiniować stałą w jednym pliku i uzyskać dostęp do innego pliku w angularjs
- 30. Java, nashorn uzyskując dostęp do innego pliku js
Czy mógłbyś wyjaśnić, dlaczego nie chcesz użyć pliku nagłówka? To może być pomocne, aby pomóc Ci w rozwiązaniu problemu. –
Nie sądzę, żeby powiedział, że nie chce. Wygląda na to, że nie wie * jak *. –