私はC++入門を読んでいると著者は言う、クラスは、名前空間内で定義されている場合は名前空間内にあるクラスのfriend関数の定義。
」は、その後、それ以外 宣言されていない友人 関数が同じ名前空間で宣言されています。
namespace A {
class C {
public:
friend void f(const C&); // makes f a member of namespace A
};
}
それは私が名前空間内で再び)(関数fを宣言する必要はありませんという意味ではありません?
私は単純に関数fを定義するとき()名前空間aの外S
void
A::f(const C& obj)
{
std::cout << "f(const C&) " << std::endl;
}
私はG ++ 4.5と言ってから、エラーを取得し、
FriendDeclarations1.cpp:40:23: error: ‘void A::f(const A::C&)’ should have been declared inside ‘A’
誰もが著者が何を意味するものではない私に教えていただけますか?