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

How to access private static variable in static member function of another class?

本文关键字:函数 静态成员 变量 静态 何访问 访问 另一个      更新时间:2023-10-16

在这种情况下,

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

IntelliSense:成员"A::n"(在"A.h"的声明)不可访问已发生。

但如果我纠正了朋友void B::setN(int _n)朋友类B,它没有错误。

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

我希望只有静态成员功能可以访问。

缺少分号

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

它只会导致IntelliSense错误,而不会导致编译错误。