我想把一个班级的方法作为朋友,而不是让全班同学。 这就是我所拥有的
class tar;
class foo
{
private:
int foo_int;
public:
foo(){std::cout << "Constructor\n";}
friend void tar::anotherMethod();
};
class tar
{
public:
void anotherMethod()
{
foo f;
f.foo_int = 13;
std::cout << f.foo_int;
}
};
这些是我得到的错误
error C2027: use of undefined type 'tar'
error C2248: 'foo::foo_int' : cannot access private member declared in class 'foo'
关于我可能做错什么的任何建议?
答案 0 :(得分:0)
在编译代码时,您可以重新排列声明和定义:
#include <iostream>
class tar
{
public:
void anotherMethod();
};
class foo
{
private:
int foo_int;
public:
foo(){std::cout << "Constructor\n";}
friend void tar::anotherMethod();
};
void tar::anotherMethod()
{
foo f;
f.foo_int = 13;
std::cout << f.foo_int;
}