我在一个工程里建了3个类 A,B,C
在类A中创建了B的一个对象x,声明为public
现在我要在C中使用这个对象x的方法f,我写了x->f();系统报错,'x':undeclared identifier请问我应该怎么引用这个对象的方法?
在类A中创建了B的一个对象x,声明为public
现在我要在C中使用这个对象x的方法f,我写了x->f();系统报错,'x':undeclared identifier请问我应该怎么引用这个对象的方法?
解决方案 »
- IOCP 多线程 接收 问题
- ★★★我发现一个问题,只要有人提问,就有人趾高气昂
- 我的老板键功能失效了,大家帮我看看原因吧。。
- 如何用ClassWizard创建没有基类的类
- 【求助】怎么从窗口句柄得到窗口的位置、大小、标题?
- VC6 中一定要这样写,没有像 VB 的 with --- end with 吗?
- 推荐——免费源码下载
- VC6.0中的宏
- 如何在两个对话框之间传送变量
- PWin2000 和 VisualStudio 和 Office2000的问题,真难啊!!!! 不是高手也可进来看看
- DialogBoxParam如何创建一个有回调函数的对话框?主要第3个参数 一直没搞懂
- 这里有没有南宁的程序员或者软件公司老板,打听下南宁的IT情况
你上面写到x-> f();这时指针还是C的所以会说X没有被定义
也就是说,当你的类中定义有其他类对象的变量时,应该确保这个变量所对应的类已经被声明。
解决办法是:
在你C类的头文件中,照如下写就可以了:
#include "A.h"
#include "B.h"
class A //前置声明
class B //前置声明class C
{
public:
B m_b;
//......
}同样,在你的B类中,也要按以上格式写
#include "A.h"
class A //前置声明class B
{
public:
A x;
}