首先类B需要包含类A的头文件,再把A对象的指针传过去就可以了(可以使用函数或其他方法,方法多的是)。但只能使用类A中的公有成员。
解决方案 »
- vc .net 2002 如何将数据库内容显示在一个DBGRID里面
- MFC 怎样在OnWndMsg函数中截获窗口可见和隐藏的消息??
- boost的regex无法匹配数字.换行?
- [100]getResponseHeader()使用求助
- ?一个用PB编译生成的可执行程序,为什么在Windwos下能看到程序版本信息,用这个算法却得不出来? 而这个算法却能得出VC,delphi写的版本信息?
- 怎样在DLL中使用ActiveX控件?
- 我刚编写一个数据库程序,需要为将一个日期加减几个月,然后由此得到一个新日期,我该怎么办?
- 新手做日志高分 把这个用vs2008编译好所有程序打包给我[email protected]
- 数据库备份技术是怎么实现的
- 想写一款设备操作演示软件,请大家发表意见
- VC2005下,如何用程序控制,使鼠标移动到当前应用程序窗体内?
- 为什么KillTimer后仍然执行该Timer事件里的程序?
不大明白。
A类已经定义好了,然后在C类里面创建A的对象a,a中有a1=1,在B类里想调用C类里正在使用的a。
如果在C类里创建一个A类的指针指向a,用一个公有函数返回该指针。那在B类里要调用这个公有函数,那又需要创建一个C类的对象方可调用,那创建一个新的C类的时候,里面也新创建的A的对象还能是想要的a吗?a1还能等于1吗?
class CExampleA
{
public:
//构造函数初始化列表
CExampleA(): m_nData(0),m_dbData(0){}
CExampleA(int n, double db): m_nData(n),m_dbData(db){}
~CExampleA() {} inline void SetDataInt(int n) { m_nData = n; }
inline int GetDataInt(void) { return m_nData; }
inline void SetDataDb(double db) { m_dbData = db; }
inline double GetDataDb(void) { return m_dbData; }
private:
int m_nData;
double m_dbData;
};class CExampleB
{
public:
//构造函数初始化列表
CExampleB(): m_pExampleA(NULL){}
CExampleB(CExampleA *pExampleA): m_pExampleA(pExampleA){}
~CExampleB() {} inline void SetExampleA(CExampleA *pExampleA) { m_pExampleA = pExampleA; }
inline CExampleA* GetExampleA(void) { return m_pExampleA; }
private:
CExampleA *m_pExampleA;
};//使用
CExampleB b;
CExampleA a(10,20.5);
b.SetExampleA(&a);a.SetDataInt(100);
a.SetDataDb(5.13);