首页 文章

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

提问于
浏览
0

在这种情况下,

#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; }

IntelliSense:成员“A :: n”(在“A.h”声明)无法访问 .

但如果我将 friend void B::setN(int _n); 更正为 friend class B; ,则没有错误 .

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

我希望只有静态成员函数可以访问 .

2 回答

  • 0

    错过了分号

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

    它只导致 IntelliSense Error ,而不是编译错误 .

相关问题