如何在另一个类的静态成员函数中访问私有静态变量?

时间:2014-10-10 10:17:23

标签: c++

在这种情况下,

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; ,则表示没有错误。

为什么我不能用这种方式?

我希望只能访问静态成员函数。

2 个答案:

答案 0 :(得分:0)

错过了分号

void B::setN(int _n) { A::n = _n; }

答案 1 :(得分:0)

仅导致 IntelliSense错误,而不是编译错误。