两个类可以互相访问吗?
Can two classes access each other?
如果我有两个类A和B,
注意:以下代码不能编译。
class A
{
public:
static void funcA() {}
void call_funcB() { B::funcB(); } // call class B's function
};
class B
{
public:
static void funcB() {}
void call_funcA() { A::funcA(); } // call class A's function
};
错误:
error C2653: 'B' : is not a class or namespace name
error C3861: 'funcB': identifier not found
可以调用每个类的静态函数吗?
你必须这样做:
class A
{
public:
static void funcA() {}
void call_funcB() ;
};
class B
{
public:
static void funcB() {}
void call_funcA() { A::funcA(); } // call class A's function
};
void A::call_funcB() { B::funcB(); } // call class B's function
允许A::call_funcB()
看到B
的声明
你需要给编译器一个提示,另一个类必须被定义,因为它是一个循环依赖。
class B;
class A { ... };
class A; // assuming separate file
class B { ... };
可以将funcA和funcB设为友元方法
相关文章:
- 在类 A 中创建类型为 B 类的向量 - 访问数据 [C++] [成员在两个类中都是私有的]
- 两个抽象类,派生自同一个基类.如何访问从一个抽象类到另一个抽象类的指针
- 交换两个字符串时访问正确的内存时,我遇到了分段错误
- 两个类之间的交叉访问
- 从两个不同类继承的非虚拟基类的访问成员
- 通过两个下标访问数组成员
- 如何合并两个双重链接列表(访问下一个链接)
- 如何在循环中循环访问两个向量
- 在CPP中互相访问的两个结构
- QT两个类互相访问
- 使用Astmatcher获得至少两个相同访问说明符的课程
- 使用原子指令确保映射访问安全,是否可以使用两个不同的原子对指令进行重新排序
- 访问对象 B 中对象 C 的方法,这两个方法均由对象 A 创建
- 在C 中,可以从第三个共享对象访问其他两个不同共享对象
- 如何在C++中比较两个非随机访问迭代器
- 两个具有相同价值的枚举,如何访问它们
- 基于两个程序之间的事件触发器访问数据(内存)
- 对关键部分的两个进程访问出错
- 访问两个实例
- C++从基类访问两个类组成中的私有成员