Czy można wywołać funkcję foo() z Foo.cpp bez zmiany nazwy funkcji Foo :: foo() na Foo :: newfoo().wywoływanie tej samej funkcji nazwy
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 na mój biedny język angielski.
Czy to naprawdę ilustruje problem? Jak napisano, Foo.cpp widzi tylko jedną definicję nazwy 'foo'. Jedynym konfliktem jest definicja 'void Foo :: foo()' w 'main.cpp'. Oto, na co odpowiadają odpowiedzi. – Potatoswatter