¿Es posible llamar a la función foo() desde Foo.cpp sin cambiar el nombre de función Foo :: foo() a Foo :: newfoo().llamando al mismo nombre función
main.cpp
#include <iostream>
#include "Foo.hpp"
class Foo {
public:
void foo() {
std::cout << "Foo::foo\n";
}
void bar() {
std::cout << "Foo::bar\n";
foo();// need to call foo() function from foo.cpp not Foo::foo()
}
};
int main() {
Foo f;
f.bar();
return 0;
}
Foo.hpp
#ifndef FOO_HPP_INCLUDED
#define FOO_HPP_INCLUDED
void foo();
#endif // FOO_HPP_INCLUDED
foo.cpp
#include "Foo.hpp"
#include <iostream>
void foo(){
std::cout << "foo\n";
}
ps.sorry por mi pobre Inglés.
¿Esto realmente ilustra el problema? Como está escrito, Foo.cpp solo ve una definición del nombre 'foo'. El único conflicto está dentro de la definición de 'void Foo :: foo()' en 'main.cpp'. Eso es lo que las respuestas parecen estar abordando. – Potatoswatter