我想有两个类,A和B。B类中有一个静态函数,A想给这个函数加好友。
我的代码如下
A级
#ifndef A_H_
#define A_H_
#include "B.h"
static void B::staticFunction();
class A {
public:
friend static void B::staticFunction();
A();
virtual ~A();
};
#endif /* A_H_ */
B类
#ifndef B_H_
#define B_H_
#include "A.h"
class B {
public:
static void staticFunction();
B();
virtual ~B();
};
#endif /* B_H_ */
但是编译器告诉我:
不能声明成员函数'static void B::staticFunction()'具有静态链接 [-fpermissive]
在类之外声明“static void B::staticFunction()”不是定义 [-fpermissive]
我应该怎么做才能修复这些错误?提前感谢您帮助我
编辑
谢谢各位,我终于想通了
工作代码是
class A;
class B{
public:
static void staticFunction(A* a);
};
class A {
public:
friend void B::staticFunction(A* a);
A();
virtual ~A();
private:
int i;
};