関数名Foo :: foo()をFoo :: newfoo()に変更することなく、Foo.cpp からfoo()関数を呼び出すことは可能ですか?同じ名前の関数を呼び出す
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。
これは本当に問題を説明していますか?書かれているように、Foo.cppは 'foo'という名前の定義しか見ません。唯一の矛盾は 'main.cpp'の' void Foo :: foo() 'の定義の中です。それは答えが扱っているようです。 – Potatoswatter