Estoy trabajando en Visual C++. Tengo dos archivos .cpp en el mismo archivo fuente. ¿Cómo puedo acceder a otra función de clase (.cpp) en esta .cpp principal?¿Tiene acceso a la función miembro de otro .cpp dentro del mismo archivo fuente?
Respuesta
debe definir su clase en un archivo .h, y implementarlo en un archivo .cpp. Luego, incluye tu archivo .h donde quieras usar tu clase.
Por ejemplo
archivo use_me.h
#include <iostream>
class Use_me{
public: void echo(char c);
};
archivo 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, ¿Puedo acceder a la función use_me sin crear un archivo de encabezado ... – Rajakumar
Claro que puede. Copie la declaración de clase 'Use_me' y péguela en lugar de las directivas' # include' en * main.cpp * y * use_me.cpp *. Eso es esencialmente lo que '# include' hace de todos modos. Serías estúpido por hacer eso, pero ciertamente es posible hacerlo. –
'use_me.h' no es necesario estar en el mismo directorio que' main.cpp' ya que puede incluirlo como '#include
Debe colocar las declaraciones de funciones en .hpp flie, y luego #include
en el archivo main.cpp.
Por ejemplo, si la función que está llamando es:
int foo(int bar)
{
return bar/2;
}
es necesario crear un archivo con este foobar.hpp:
int foo(int bar);
y añadir lo siguiente a todos los .cpp archivos que requieren foo
:
#include "foobar.hpp"
Sin crear archivos de cabecera. Use el modificador 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;
}
Estoy bastante seguro de que las funciones tienen un enlace externo por defecto de todos modos . Solo necesita 'extern' en las variables. –
- 1. Generar fuente .cpp desde un archivo .h
- 2. ¿Tiene acceso a recursos en otro paquete de osgi?
- 3. clase heredada C++ tiene miembro del mismo nombre
- 4. Obtener module.exports desde dentro del mismo archivo
- 5. Referencia no definida a la función no miembro - C++
- 6. Incluyendo .cpp al final del archivo de encabezado de plantilla
- 7. Acceso argumentos de la función del decorador
- 8. ¿Referencia a la función miembro?
- 9. Pasar la función puntero a miembro como puntero a función
- 10. ¿Cómo reasignar el puntero `this` dentro de la función miembro miembro?
- 11. ¿Tiene acceso al archivo en el archivo jar?
- 12. puntero de función miembro que devuelve mismo tipo de puntero de función miembro
- 13. Sublime Texto 2: Configuración de la sintaxis del archivo dentro del mismo archivo (como modelines Vim)
- 14. Acceso a un archivo dentro de un archivo .jar
- 15. C Excepción archivo #: no tiene acceso al archivo porque está siendo utilizado por otro proceso
- 16. Sobrecarga del operador: función de miembro vs. función de no miembro?
- 17. llamando a la función miembro de Javascript constructor
- 18. Incluyendo un archivo fuente Netlogo en otro
- 19. Función de miembro llamante de otro controlador en zend framework?
- 20. Calling "C++" función miembro de la clase de código
- 21. Puntero de función a función de miembro
- 22. Cuando tiene acceso múltiple Instancia Spring Singleton al mismo tiempo
- 23. Incluye el archivo .cpp?
- 24. Puntero de función C++ (miembro de la clase) a la función miembro no estática
- 25. Diccionario de bloqueo dentro del mismo hilo
- 26. función de miembro estático de clase elegido sobre la función global con el mismo nombre?
- 27. ¿Tiene otro sistema de control de versiones un acceso de sistema de archivos ClearCase a las versiones de archivo?
- 28. Miembro de referencia de clase apunta a otro miembro de la misma clase
- 29. miembro definición de función
- 30. C++ miembro función de acceso privado variable estática?
podría explicar por qué no se desea utilizar un archivo de cabecera? Eso podría ser útil para ayudarlo con su problema. –
No creo que haya dicho que no quiere. Parece que él no sabe * cómo * hacerlo. –