E 'possibile chiamare la funzione foo() da Foo.cpp senza cambiare nome di funzione Foo :: foo() a Foo :: newfoo().chiama lo stesso nome funzione
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 per il mio povero inglese.
Questo illustra davvero il problema? Come scritto, Foo.cpp vede solo una definizione del nome 'pippo'. L'unico conflitto è all'interno della definizione di 'void Foo :: foo()' in 'main.cpp'. Questo è ciò a cui sembrano rispondere le risposte. – Potatoswatter