在这种情况下,
A.H
#include "B.h"
class A{
private:
static int n;
friend void B::setN(int _n);
};
A.cpp
#include "A.h"
int A::n = 0;
B.h
class B{
public:
static void setN(int _n);
};
B.cpp
#include "B.h"
#include "A.h"
void B::setN(int _n) { A::n = _n; }
智能感知:成员“A :: n”(声明为“A.h”)无法访问。
但如果我将朋友无效B :: setN(int _n); 更正为朋友类B; ,则表示没有错误。
为什么我不能用这种方式?
我希望只能访问静态成员函数。
答案 0 :(得分:0)
错过了分号
void B::setN(int _n) { A::n = _n; }
答案 1 :(得分:0)
仅导致 IntelliSense错误,而不是编译错误。